[英]error malloc in C
我不确定这是怎么回事,它说不兼容的隐式内置在func中,我确实包含了string.h文件,但它仍然给我一个错误
int name_read;
int name_bytes = 100;
char *name;
printf("Please enter name:\n");
name = (char *)malloc(name_bytes + 1);
name_read = getline(&name, &name_bytes, stdin);
您需要#include <stdlib.h>
来获取malloc
的正确声明。
另外sizeof(name_bytes) + 1
看起来很可疑; 这将为您提供5个字节的内存,而不是您可能期望的101个字节。
最后,由于malloc
返回void*
,因此无需在malloc
中malloc
其返回值。
#include <stdlib.h>
/* ... */
int name_bytes = 100;
char* name = malloc(name_bytes + 1);
要解决该错误,请确保已包含stdlib.h。 另外,您应该注意sizeof返回变量/类型的大小,而不是分配给变量的值。 因此您的sizeof(name_bytes)将返回整数的大小(以字节为单位),而不是100
我认为您实际上需要name = malloc(name_bytes + 1);
(假设您要为名称分配101个字节)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.