printf
함수에서 sizeof를 사용할 때 길이를 반환하지만 int 변수에 할당하면 배열의 길이가 제공되지 않습니다. 대신 프로그램이 중지됩니다.왜 sizeof 배열의 길이를 제공하지 않습니다?
int main(void) {
int a[] = {1, 3, 5, 6, 23, 55, 93, 923, 112, 33, 5, 23};
int len = sizeof(a)/sizeof(a[0]); // It return anonymous integer
int len2 = sizeof(a);
// mergesort(a, 0, len); // This is an update, because of this, program stops.
printf("%d\t%d\n", sizeof(a)/sizeof(a[0]), len);
printf("%d", len2); // The program stops when using this.
}
업데이트 : 얘들 아, 질문에 대한 유감 여기에 코드입니다. 내 실수 야. mergesort 알고리즘을 사용하고 있기 때문에 정상적으로 작동합니다. 그것은 mergesort에서의 오류라고 생각합니다.
'프로그램 중지'란 무엇을 의미합니까? – herohuyongtao