Pav*_*tar 3 c malloc buffer posix
在下面的代码中,含义是什么     buf = malloc(n * sizeof(char));
是n*sizeof(char)必要的,如果是的话......请详细说明.
int n;
char* buf;
fstat(fd, &fs);
n = fs.st_size;
buf = malloc(n * sizeof(char));
EDIT1如果我写怎么办(n*sizeof(double))
该malloc函数分配字节并将您想要分配的字节数作为输入.的sizeof运算符返回对于给定类型的字节数.在这种情况下,a char是1个字节,但在它的情况下,int它很可能是4个字节或者double很可能是8个字节.表达式n * sizeof(char)将数量转换char为所需的字节数.
在图示的情况下,char可能不需要使用,计算字节数,但应该这样做,因为它有助于传达您的意图.
表达式正在做的是分配所需的内存量,以保存最多n数量的内存,char并将指针返回buf到分配的内存的开头.