【c语言】用malloc函数给结构体赋值的使用方法,free清空
2015-05-24 14:53
183 查看
我们知道,结构体使用之前必须的赋初值,例如:
struct A
{
char *na;
}*p;
对这个结构体而言,如不对char *na和*p赋初值 ,这个程序就通不过,*p是一个结构体指针,所以我们要找到它要指的地方就必须知道*na的地址,于是仅有na有初值才知道*p的指向,即他保存的地址。同理要找到p在哪里,就得对p赋初值。
下面我们用malloc函数动态分配空间给结构体对象。并使用free函数清空。
代码如下:
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; }
相关文章推荐
- 【C语言】使用结构体和malloc函数时的一些错误。
- C语言中结构体以及在结构体中调用方法;联合体和联合体的使用
- C语言 结构体中使用strcpy方法,以及结构体指针
- C语言结构体常见使用以及使用方法
- C语言中的const,free使用方法具体解释
- C语言中结构体变量之间赋值
- C语言的一些特殊使用方法————————【Badboy】
- Linux C语言的定时器使用方法
- 面试题----new/delete、malloc/free、new[]/delete[]的用法与区别以及new的三种使用方法
- C语言---结构体成员变量加“点”赋值
- C语言 结构体作为参数和返回值使用
- 7_21|C语言|操作符注意事项|sizeof使用讲解|结构体简单介绍
- 详解Swift中对C语言接口缓存的使用以及数组与字符串转为指针类型的方法
- 如何让c语言使用结构体近似模拟c++中的类
- VS2017使用方法 使用C语言写helloworld
- Linux 程序开发打印 Debug 信息的使用技巧--C语言中几种输出调试信息的方法
- C语言:使用COORD结构体实现光标随方向键移动
- C语言中的union使用方法
- Swift_方法func(在类、枚举、结构体中的声明和使用 mutating func初始化值可变)
- C语言结构体对象间直接赋值