清明节期间学习记录,无愧对先人啊~~~LINUX ANSI C动态内存管理示范代码

我们重庆万州家人习俗是春节时为祖先上坟的。

今年回家时,我和小孩,老婆,爸妈去祖上除过草,挂过纸,放过鞭炮了。

希望祖上在另一个世界,一切安好。

清明节期间,努力学习,无愧对先人吧。。。

 1 [root@localhost ccode]# cat realloc_example.c
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4
 5 int main(int argc, char* argv[], char* envp[])
 6 {
 7     int input;
 8     int n;
 9     int *numbers1;
10     int *numbers2;
11     numbers1 = NULL;
12
13     if((numbers2 = (int *)malloc(5 * sizeof(int))) == NULL)
14     {
15         printf("malloc memory unsuccessful.");
16         numbers2 = NULL;
17         exit(1);
18     }
19
20     for(n = 0; n < 5; n++)
21     {
22         *(numbers2 + n) = n;
23         printf("numbers2's data: %d\n", *(numbers2 + n));
24     }
25     printf("Enter an an integer value you want to remalloc (enter 0 to stop)\n");
26     scanf("%d",&input);
27     numbers1 = (int *)realloc(numbers2, (input + 5) * sizeof(int));
28     if(numbers1 == NULL)
29     {
30         printf("Error (re)allocating memory");
31         exit(1);
32     }
33
34     for(n = 0; n < 5; n++)
35     {
36         printf("the numbers1s's data copy from numbers2: %d\n", *(numbers1 + n));
37    }
38    for(n = 0; n < input; n++)
39    {
40         *(numbers1 + 5 +n) = n * 2;
41         printf("numbers1's new data: %d\n",*(numbers1 + 5 + n));
42    }
43    printf("\n");
44    free(numbers1);
45    numbers1 = NULL;
46    return 0;
47 }

效果:

注意事项:

静态对象明名字的变量,可以直接对其进行操作,而动态对象是没有名字的变量,需要通过指针间接对它进行操作。

后来想想,其实计算机不会阻止很烂的程序很耗系统资源的运行。

最终,决定水平高低的还是算法,时间和空间复杂度。

SO,计算机不是万能的,人才是决定一切的因素。。。

 

时间: 2024-07-28 22:15:37

清明节期间学习记录,无愧对先人啊~~~LINUX ANSI C动态内存管理示范代码的相关文章

《从零开始学Swift》学习笔记(Day 61)——Core Foundation框架之内存管理

原创文章,欢迎转载.转载请注明:关东升的博客  在Swift原生数据类型.Foundation框架数据类型和Core Foundation框架数据类型之间转换过程中,虽然是大部分是可以零开销桥接,零开销并不意味着内存什么都不用管.Swift类型内存管理是采用ARC,Foundation类型和Core Foundation类型内存管理都是采用MRC或ARC,CoreFoundation类型内存管理是基于C语言风格的,它有一个对象所有权的概念. Objective-C的MRC内存管理 Core Fo

C++内存管理学习笔记(3)

/****************************************************************/ /*            学习是合作和分享式的! /* Author:Atlas                    Email:wdzxl198@163.com    /*  转载请注明本文出处: *   http://blog.csdn.net/wdzxl198/article/details/9078965 /**********************

c++内存管理学习纲要

本系列文章,主要是学习c++内存管理这一块的学习笔记. 时间:6.7-21 之下以技术内幕的开头语,带入到学习C++内存管理的技术中吧: 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,因此要想成为C++高手,内存管理一关是必须要过的! 笔记汇总: 1.C++内存管理学习笔记(1) 2.C++内存管理学习笔记(2) 3.C++内存管理学习笔记(3) 4.C++内存管理学习笔记(4) 5.C++内存管理学习笔记(5) 6.C++内存管理学习笔记(6) 7.C++内存管理学习笔记(7

kubernetes学习记录(7)——弹性伸缩与滚动升级

kubernetes学习记录(7)--弹性伸缩与滚动升级. 弹性伸缩 弹性伸缩是指适应负载变化,以弹性可伸缩的方式提供资源. Pod的弹性伸缩就是修改Replication Controller的Pod副本数.可以通过Kubectl scale命令实现. 创建Replication Controller test-rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: test-rc spec: replicas: 2

清明节期间网络“热词榜”

中新网4月10日电 清明节期间网络"热词榜",日前由互动百科网站发布,"祭不起"."潮祭品"等在列. 清明节,无论是"面包猪"代替"金猪",还是新潮几百上千元的祭祀潮品,抑或是"冥币通胀"的新闻,都让人产生了一种"祭不起"的感觉,而"生在北京葬在河北",以及"小产权墓"."期墓"的出现,更让人"死不

js和jquery中循环的退出和继续学习记录_javascript技巧

作为水货,就是学会了1+1=3也要记录一下!错了,是2 学习记录: js中的 for(var i=1;i<5;i++){ if(i==3){ break; // 使用break,弹出2次提示分别为1,2:如果使用continue,则会弹出3次,分别是1,2,4 } alert(i); } 循环,退出循环,使用break:退出当前循环继续下一个循环,使用continue jquery中的each()方法中要实现break,使用return false:continue,使用return true

V4L2学习记录【转】

转自:http://blog.chinaunix.net/uid-30254565-id-5637600.html 4L2学习记录                                                                                                                                    这个还没有分析完,先在这放着,防止电脑坏掉丢了,以后再完善 V4L2的全称是video for linux

C++内存管理学习笔记(7)

/****************************************************************/ /*            学习是合作和分享式的! /* Author:Atlas                    Email:wdzxl198@163.com    /*  转载请注明本文出处: *   http://blog.csdn.net/wdzxl198/article/details/9178099 /**********************

C++内存管理学习笔记(1)

/****************************************************************/ /*            学习是合作和分享式的! /* Author:Atlas                    Email:wdzxl198@163.com    /* Welcome>晓的博客:zhangxiaolong.org  /*  转载请注明本文出处: *   http://blog.csdn.net/wdzxl198/article/deta