0
當我運行這個程序時,輸出是4個字節。 (我用一個64位的編譯器)動態分配的變量大小
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *b;
b=(int*)malloc(10*sizeof(int));
printf("%d",sizeof(b));
return 0;
}
但是不應該輸出是40個字節,因爲我動態地分配40個字節的爲「B」的空間?
**指針不是數組**。 – haccks
指針不是數組。我明白了。但是有什麼辦法可以知道有多少字節分配給b? –
它打印指針本身的大小。 (這是4個字節,32位,你確定是64位編譯器嗎?)一旦它被分配了,就沒有(可移植和標準的)方式來獲得堆分配塊的大小。 – HolyBlackCat