0
我在C中編寫了下面的代碼。由於數組大小不能動態分配,我期望錯誤消息。但代碼編譯。但是myArray1的結果大小是荒謬的。我不確定它爲什麼編譯。我正在使用codeblock和minGW。動態數組大小分配
int a;
printf("Enter the value for a\n");
scanf("%d",&a);
int myArray2[a];
printf("value of a = %d\tSize of myArray1 = %d",(sizeof(myArray2)/sizeof(myArray2[0])));
不檢查規範,它可能適用於C11,它可能包含在GCC擴展中。 – MikeCAT
printf(「a =%d \ tSize myArray1 =%d」,a,(sizeof(myArray2)/ sizeof(myArray2 [0]))); –
更安全的更正:'printf(「a =%d的值\ myArray1 =%u的大小」,a,(unsigned int)(sizeof(myArray2)/ sizeof(myArray2 [0]))); ' – MikeCAT