C中的Malloc语法
发布时间:2020-12-16 10:33:05 所属栏目:百科 来源:网络整理
导读:在书中我读到malloc的语法是malloc(sizeof(int))但是在双链表程序之一中我看到以下内容: newnode=(struct node *)malloc(sizeof(struct node)) 什么是(struct node *)在这做什么?整个代码在做什么?顺便说一下,程序中结构的代码如下. struct node{char lin
在书中我读到malloc的语法是malloc(sizeof(int))但是在双链表程序之一中我看到以下内容:
newnode=(struct node *)malloc(sizeof(struct node)) 什么是(struct node *)在这做什么?整个代码在做什么?顺便说一下,程序中结构的代码如下. struct node { char line[80]; struct node *next,*prev; }; struct node *start=NULL,*temp,*temp1,*temp2,*newnode; 谢谢 解决方法
代码动态创建指向单一类型结构节点的指针.在大多数C版本中,不需要(struct node *)强制转换,有些人认为不应该使用它.如果你删除了强制转换,它将是一个void *,可以用于任何类型.
因此: newnode = (struct node*)malloc(sizeof(struct node)); 大致相当于: newnode = malloc(sizeof(struct node)); 见:Specifically,what’s dangerous about casting the result of malloc? 注意1:如果您使用Visual Studio编写C代码,如果不转换malloc的结果,它将为您提供红色下划线.但是,代码仍将编译. 注意2:在C代码中使用malloc需要转换结果,如示例所示. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |