我正在创建以下缓冲区:
char *buffer;
int buffer_size = 1024;
buffer = (char*) ( malloc(buffer_size * sizeof(char) );
然后当我这样做时:
int actual_size = sizeof(buffer);
printf("Size: %d", actual_size);
它打印的内容是:
size: 4
虽然我期望它是 1024,但这是为什么?
最佳答案
这不是那样的
sizeof(buffer);
返回buffer
的大小,它是一个指针,而不是一个数组。如果您有一个如下所示的数组
char szArray[100];
然后
sizeof(szArray);
将返回 100,因为 szArray
是一个数组,但指针不是数组。
关于c - 缓冲区大小不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13404192/