C语言,calloc用法,用他实现把结构体数组的数据拷贝到链表,不能用mallloc
发布网友
发布时间:2023-03-28 15:38
我来回答
共1个回答
热心网友
时间:2023-10-27 19:59
calloc和malloc 功能基本一样都是申请连续内存空间,返回首地址指针。
区别就是calloc自带了初始化为零,而malloc申请后,需要人为初始化值。
和数据结构的拷贝没有任何直接关系!
原型:void *calloc(unsigned n,unsigned size);
我写了个简单的插入链表,你参考吧
#include <stdio.h>
#include <stdlib.h>
typedef struct student_list
{
char name[6];
struct student_list *next;
}SL;
void insertSL(SL *slHead);//添加结构数据到链表 参数:头节点指针
int main(void)
{
SL *slHead=(SL *)calloc(1,sizeof(SL));//头节点指针不存放数据,用于遍历
slHead->next=NULL;
insertSL(slHead);//想插入几个,就调用几次
insertSL(slHead);
insertSL(slHead);
insertSL(slHead);
while(slHead->next!=NULL)//打印
{
printf("%s\n",slHead->next->name);
slHead=slHead->next;
}
return 0;
}
void insertSL(SL *slHead)
{
SL *slNew=(SL *)calloc(1,sizeof(SL));
printf("请输入节点名称:");
scanf("%s",slNew->name);
while(slHead->next!=NULL)
slHead=slHead->next;
slHead->next=slNew;
}