-2
C에서 구조체 변수를 많이 만들려고합니다. 그래서 for 루프가 3 회 실행되고 세 개의 구조 변수가 만들어집니다. 내 질문은 왜 동일한 메모리 위치를 참조하는 변수를 만드는 것입니다. 코드 :루프에서 구조 변수를 만들려면
struct arrIndexStruct {
int *arr;
int index;
};
int main() {
int i;
for (i=0; i<3; i++) {
struct arrIndexStruct arrayIndexStruct;
arrayIndexStruct.arr = someArray;
arrayIndexStruct.index = i;
printf("%p\n",(void *)&arrayIndexStruct);
}
}
내가 얻을 출력은 다음과 같습니다
0x7ffeed84f690
0x7ffeed84f690
0x7ffeed84f690
내가
struct arrIndexStruct arrayIndexStruct1;
struct arrIndexStruct arrayIndexStruct2;
printf("%p\n",(void *)&arrayIndexStruct1);
printf("%p\n",(void *)&arrayIndexStruct2);
을 할 경우, 반면에 나는 차이가 무엇
0x7ffc484e64d0
0x7ffc484e64e0
를 얻을 수 있습니다 두 행동 사이에 for 루프는 로컬 범위가 있습니까? 감사합니다.
이들이 범위보다 오래 살 필요가 없기 때문에. 자동 변수가 무엇인지 아십니까? 그렇지 않은 경우 검색하십시오. – Olaf