`
HeLinHang
  • 浏览: 141675 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

C语言中malloc和Free的使用

 
阅读更多

malloc分配内存,free释放内存,结构体中的指针和结构体指针要通过malloc分配,使用完后,通过free释放并置于NULL,

 

 

#include<iostream>
using namespace std;
typedef struct _Birthday
{
	int day;
	int month;
	int year;

} Birthday;
typedef struct _Student
{
	int schoolNumber;
	char *name;
	Birthday year;
} Student;


typedef enum _Color
{
	red,
	blue,
	white,
	yellow
} Color;

//结构体数组
struct student
{
	int mum;
	char name[20];
	char sex;
	int age;
	float score;
	char addr[30];
}stu[3] = {{11,"HHH", 'M', 18, 87.5, "Road"},{10101,"Li Lin", 'M', 18, 87.5, "Road"},{10101,"Lin", 'M', 18, 87.5, "103 Beijing Road"}};

int main()
{
	Student std;
	//分配内存空间
	std.name=(char *)malloc(20*sizeof(char));
	strcpy(std.name,"test");
	std.year.day=10;
	std.year.month=12;
	std.year.year=2012;
	cout<<std.name<<endl;
	cout<<std.year.year<<"年"<<std.year.month<<"月"<<std.year.day<<endl;


	Student *stdOne;
	//分配内存空间
	stdOne=(Student *)malloc(sizeof(Student));
	stdOne->name=(char *)malloc(20*sizeof(char));
	strcpy(stdOne->name,"testOne");

	//释放分配的内存
	free(std.name);
	free(stdOne->name);
	free(stdOne);


	//防止野指针的产生
	std.name=NULL;
	stdOne->name=NULL;
	stdOne=NULL;


	//枚举类型
	Color color=red;
	cout<<"Color:"<<color<<endl;
	return 0;
}
 

 

 

 

分享到:
评论

相关推荐

    C语言实现malloc和free

    用C自己实现malloc和free,需要的可以看下,没实际用处,不过可以了解C的原型原理

    C语言的malloc和free函数.pdf

    C语言的malloc和free函数.pdf

    C语言的malloc和free函数-综合文档

    C语言的malloc和free函数

    C语言基础之malloc和free函数详解

    主要介绍了C语言基础之malloc和free函数详解的相关资料,需要的朋友可以参考下

    浅谈C中的malloc和free

    本人叙述了C语言中的malloc和free的用法,以及一些平时我们觉得很模糊的知识点。

    C语言的malloc和free函数.zip-综合文档

    C语言的malloc和free函数.zip

    C语言实例-实现malloc与free函数完成内存管理.pdf

    介绍malloc与free函数的用法,并利用C语言自己实现malloc与free函数,完成内存管理。

    Malloc和new区别

    由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的 任务强加于malloc /free. 3 ,因此C++ 语言需要一个能完成动态内存分配和初始化工作的运算符new ,以一个能完成...

    malloc()和free()的基本概念以及基本用法

    详细介绍了c语言中malloc()和free()的基本用法、概念和机制

    C语言中 malloc,calloc,realloc的区别

    C语言中 malloc、calloc、realloc的区别 (1)C语言跟内存分配方式 从静态存储区域分配.  内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量、static变量. 在栈上创建  在执行...

    基于malloc与free函数的实现代码及分析

    用于内存管理的malloc与free这对函数,对于使用C语言的程序员应该很熟悉。前段时间听说有的IT公司以“实现一个简单功能的malloc”作为面试题,正好最近在复习K&R,上面有所介绍,因此花了些时间仔细研究了一下。毕竟...

    结构体中动态内存的管理(malloc和free)

    C语言中内存的管理主要是依据malloc和free实现的,其中malloc主要是实现内存的分配,而free则是实现内存的释放。虽然这是我们已经很熟悉的,但是还是存在一些问题。特别是当结构体中存在指针的情况下,各种问题也就...

    基于C语言实现的MallocLab实验.zip

    本质是对一系列的 malloc,free 请求队列的相应,同时满足一些特定的限制条件,比如说:不可以控制用户请求空间的大小;用户的请求必须立即响应,不可以使用 buffer 的形式,这一点是和 shedlab 本质的区别;只可以...

    c语言 malloc源码

    c语言库文件 内存管理源代码 malloc free malloc_consolidate realloc

    c语言 malloc函数详解

    谈到malloc函数相信学过c语言的人都很熟悉,但是malloc底层到底做了什么又有多少人知道。 1、关于malloc相关的几个函数 关于malloc我们进入Linux ...同时,当内存不再使用的时候,应使用free()函数将内存块释放掉

    C语言中多维数组的内存分配和释放(malloc与free)的方法

    如果要给二维数组(m*n)分配空间,代码可以写成下面: 代码如下:char **a, i; // 先分配m个指针单元,注意是指针单元 // 所以每个单元的大小是sizeof(char *) a = (char **) malloc(m * sizeof... free((void *)a[i

    C语言中的malloc使用详解

    一、原型:extern void *malloc(unsigned int num_bytes); 头文件:#include &lt;malloc...当内存不再使用时,应使用free()函数将内存块释放。 举例: #include #include&lt;malloc&gt; int main() { char *p; p=(char *)mal

    C语言中free函数的使用详解

    free函数是我们再写C语言程序时常用的函数,但是使用时需要注意,一不小心很肯能会引起吐核。  注意:free函数与malloc()函数配对使用,释放malloc函数申请的动态内存。对于free(p)这句语句,如果p 是NULL 指针,...

Global site tag (gtag.js) - Google Analytics