에서 배열의 요소에 액세스 나는이 기능이 있습니다부정적인 인덱스
void func(int index, struct foo b[])
{
// ...
a[0][0] = b[index].c[0];
// ...
}
을하지만 때로는 함수가 인덱스 -2
로 호출 : 범위를 벗어났습니다
a[0][0] = b[-2].c[0];
내가 -2 생각, 때로는 추락하지만 때때로 그렇지 않습니다.
배열 b의 선두 주소가 0xffd9cda4 인 경우 b [-2]의 가중치는 무엇입니까?
0xffd9cda4 + 0xfffffffe = 0x1ffd9cda2? 0x1ffd9cda2가 유효합니까?
Linux 64 비트에서 실행됩니다.
너는 생각한다 * -2는 범위를 벗어 났습니까? – adamdunson
정확하게이 목표를 달성하기 위해 노력하고 있습니까? – adamdunson
'b'의 종류는 무엇입니까? 당신 같은 배열 (모호하게)이라면, 질문은 논박의 대상입니다. 그렇지 않은 경우 더 많은 코드를 보여주십시오. 어떻게 선언됩니까? 초기화되었거나 할당 되었습니까? –