This question already has answers here:
How to find the 'sizeof' (a pointer pointing to an array)?
(13个回答)
3个月前关闭。
这是我的代码:
我不知道为什么要这样做,但是我需要newArray来具有完全newSize个字符点。有任何想法吗?
(13个回答)
3个月前关闭。
这是我的代码:
int newSize = size + 1; //lets say size = 0
char * newArray = malloc(newSize * sizeof(char));
printf("%li", sizeof(newArray)); //Should be 1, prints 8
printf("%li", newSize * sizeof(char)); //Should be 1, prints 1
我不知道为什么要这样做,但是我需要newArray来具有完全newSize个字符点。有任何想法吗?
最佳答案
因为newArray
是指针,所以sizeof(newArray)
为您提供了指针的大小,而不是指针所指向的缓冲区的大小。
分配内存时,您需要自己跟踪内存的大小,因为该语言无法为您提供找到内存的方法。
关于c - 当我执行malloc(1)时,它会在char *中分配8个空格,我也不知道为什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58966908/
10-17 01:51