啊哈哈,C Primer Plus 笔记,你懂得
本帖最后由 RunningWolf 于 2013-7-25 09:10 编辑C Primer Plus 笔记
一部分如下:
12.6分配内存:malloc()和free()在程序运行时使用malloc()来请求一个存储块。另外还需一个指针来存放该块在内存中的位置。如:double * ptd = (double *)malloc(30 * sizeof(double));注意:ptd作为指向一个double类型值的指针,而不是指向30个double类型值的数据块的指针。也可以这样做来动态分配内存:ptd = (double *)malloc(n * sizeof(double));一般地,对应每个malloc()调用,应该调用一次free()。//使用范例int max, i = 0;scanf(“%d”, &max);double * ptd = (double *)malloc(max * sizeof(double));if (ptd == NULL){puts(“Memory allocation failed. Good bye.”);exit(EXIT_FAILURE);}puts(“Enter the values(q to quit):”);while (i < max && scanf(“%lf”, &ptd) == 1)++i;……free(ptd); //记着要释放这些内存啊12.6.2 calloc()calloc()也可以分配内存,在ANSI中返回一个void指针。calloc()将块中所有位置都置为0,可以用free()来释放这些内存。如:long * newmem = (long *)calloc(100, sizeof(long));动态内存分配所使用的内存部分可能变成碎片状,也就是说,在活动的内存块之间散布者未使用的字节片。不管怎么样,使用动态内存往往导致进程比使用堆栈内存慢。12.7.3 类型限定词restrictrestrict允许编译器做些优化。它只可用于指针,并表明指针是访问一个数据对象的惟一且初始的方式。如:int * restrica restra = (int *)malloc(10 * sizeof(int));
**** Hidden Message *****
本帖最后由 Potato丶 于 2013-7-25 00:35 编辑
{:7_178:}原创?笔记本体呢?- -只有这一部分?
不错,谢楼主 感谢,改天整理一下汇编笔记,分享给鱼油。 原创非常棒,支持了,可惜就是不全 感谢楼主分享
Potato丶 发表于 2013-7-25 00:34 static/image/common/back.gif
原创?笔记本体呢?- -只有这一部分?
必须原创啊,不信你可以百度一下 Potato丶 发表于 2013-7-25 00:34 static/image/common/back.gif
原创?笔记本体呢?- -只有这一部分?
哈哈,贴上去了{:5_109:} RunningWolf 发表于 2013-7-25 09:11 static/image/common/back.gif
哈哈,贴上去了
{:7_178:}只有4章啊? Potato丶 发表于 2013-7-25 10:01 static/image/common/back.gif
只有4章啊?
dou shi wo zi ji xie de {:5_109:} http://user.qzone.qq.com/913227042/blog/1367377354#!app=2&via=QZ.HashRefresh&pos=1367414213 原创非常棒,支持了 aaaaaaaaaaaaaaa {:1_1:}学习下。。 好久没来了,现在就开始 不错,谢楼主 谢谢楼主分享!学习学习! :sweat::sweat::sweat::sweat::sweat::sweat::sweat:haha :ton::ton::lol::funk: 不能把能不能把你 这个要顶...