#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char* buffer = malloc(1000*sizeof(char));
memset(buffer,'\0',1000);
printf("%ld\n",sizeof buffer); // Size of Pointer
printf("%ld\n",sizeof *buffer); // Size of Memory Block pointed at by buffer
printf("%ld\n",strlen(buffer)); // Length of String
return 0;
}
// Output:-
// 8
// 1
// 0
代码正常工作。
输出是预期的,但是如果不知道长度,我如何找到用malloc初始化的连续内存的长度?
没有标准方法可以找出多块已分配的内存。
由您自己来跟踪尺寸。