은이 같은 일부 코드가있다.어레이 어드레스 ++
그런 다음이 입력으로 tmp[]
길이가 0이되었음을 깨달았습니다. 그래서와 array[]
및 tmp[]
의 주소 인쇄 :
printf("%d\n %d\n", array, tmp);
을하고이 같은 주소를했다 발견했다.
배열의 길이가 0 인 경우 어떤 일이 발생할지 파악하고 싶습니다.
이array[]: 1363909056
tmp[] : 1363909052
그것은 (입력 부분을 제외하고) 바로 앞의 코드처럼 보이는 :
int array[1];
array[0] = 10;
int tmp[0];
tmp[0] = 1;
주소 : 그래서 나는이 시도. 그러나 tmp[0]
과 array[0]
은 다른 값과 주소를 갖습니다.
그리고 나는 tmp
에 더 작은 주소 (array
)가 있다는 것을 정말로 알고 있습니다.
그래서 제 질문은 : 나는 길이 제로의 배열을 선언하는 경우
- 어떻게됩니까?
- 왜이 두 코드가 다른 방식으로 작동합니까? (그들은 나에게도 똑같아 보인다 :))
'int array [n];'은 표준 C++가 아닙니다. –
다른 '선언문'으로 많은 시도를했지만 더 혼란 스럽습니다. – mzhty
'tmp [0] = 1;'은 단순히 정의되지 않은 동작을 호출합니다. 결과적으로'tmp [0]'에서 접근 한 결과에 대해서는별로 가치가 없습니다. –