【c语言】用malloc函数给结构体赋值的使用方法,free清空

来源:互联网 发布:combox控件绑定数据库 编辑:程序博客网 时间:2024/06/05 07:54

我们知道,结构体使用之前必须的赋初值,例如:



struct  A

{

char *na;


}*p;



对这个结构体而言,如不对char *na和*p赋初值   ,这个程序就通不过,*p是一个结构体指针,所以我们要找到它要指的地方就必须知道*na的地址,于是仅有na有初值才知道*p的指向,即他保存的地址。同理要找到p在哪里,就得对p赋初值。



下面我们用malloc函数动态分配空间给结构体对象。并使用free函数清空。



代码如下:

#include <stdio.h>#include <string.h>#include <malloc.h>struct student{char *name;int score;}*pstu;int main(){pstu = (struct student *)malloc(sizeof(struct student));//给pstu赋初值,找到指针所在位置pstu->name = (char *)malloc(10*sizeof(char));//对name赋初值,让pstu能找到它strcpy(pstu->name,"bit-tech");//用strcpy函数给name赋值printf("%s",pstu->name);free(pstu->name);//清空的先后顺序也很重要,若先清空pstu,那么name的位置则无法确定,就无法清空。free(pstu);return 0;}

0 0
原创粉丝点击