关于malloc的问题。。。。

为什么malloc会报错
node是一个结构体

 node* pnew = malloc(sizeof(node));

在malloc前面加上强制类型转换

malloc()的问题:

#include
#include
void getmemory(char *p)
{
p=(char *) malloc(100);
strcpy(p,"hello world");
}
int main( )
{
char *str=NULL;
getmemory(str);......
答案就在这里:malloc()问题
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

malloc方法返回值是null,所以要强制类型转换为相应的指针类型

改成node* pnew = (node*)malloc(sizeof(node));

 void *malloc(unsigned int num_bytes);
malloc返回的类型是void *
你必须强制转换成你需要的类型才行
node* pnew = (node *)malloc(sizeof(node));

强制类型转换~~~~~~

malloc()函数返回的是void型的指针,需要强制转换为对应指针类型,
你这里就要这么改:
node* pnew = (node*)malloc(sizeof(node));