标签:
ios培训------我的c语言笔记,期待与您交流!
再C语言中关于内存是一个很重要的知识点,所以今天我就从c语言的内存分配开始为大家解析一下C语言再iOS开发中非常重要的一些知识。
1:malloc函数的介绍
C语言中开辟内存空间:malloc函数
再C语言中malloc原理大致是这样的:
#include <stdio.h>
使用malloc需要加入头文件
#include <stdlib.h>
int main(void)
{
char *p = malloc(1000);//传参,这里是1000字节(这里将回开在一个叫做堆段的空间,main函数是开辟在栈段的)
//堆栈是在内存中有一段距离的两端空间
p[0];//+1是加1个字节得到长度(这里0是指第一个)
通过p[x]可以使用他的每一个字节空间
return 0;
}
#include <stdio.h>
#include <stdlib.h>
堆空间开辟的几率可能回失败,返回0表示失败:这个时候我们使用exit(-1);结束当前程序(进程)
int main(void)
{
char *p = malloc(1000);
if (p == NULL) {//报错并且终止程序
perror("malloc");
exit(-1);
}
p[0] = ‘A‘//使用堆空间
free(p)//这里是释放堆空间,这个空间久可以被其他程序使用,所以这里久变得不安全了。而且必须使用free函数进行释放
return 0;
}
/**
*注:
栈空间是静态内存分配,大小编译的时候决定,而且内存空间会自动释放
堆空间是动态内存分配,大小运行的时候决定,需要手动释放
*/
堆栈的介绍:
另外C语言中还有一些函数需要我们注意的:
如果你还堆C语言中内存分配不懂或者堆堆栈不理解那么,请认真的看看这张图片,再结合上面的介绍,你就会很清楚了。
标签:
原文地址:http://www.cnblogs.com/iCocos/p/4412758.html