當我在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