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

简介: 我们重庆万州家人习俗是春节时为祖先上坟的。 今年回家时,我和小孩,老婆,爸妈去祖上除过草,挂过纸,放过鞭炮了。 希望祖上在另一个世界,一切安好。 清明节期间,努力学习,无愧对先人吧。。。 1 [root@localhost ccode]# cat realloc_example.

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

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

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

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

 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,计算机不是万能的,人才是决定一切的因素。。。

 

目录
相关文章
|
5月前
|
安全 Java 应用服务中间件
Spring Boot + Java 21:内存减少 60%,启动速度提高 30% — 零代码
通过调整三个JVM和Spring Boot配置开关,无需重写代码即可显著优化Java应用性能:内存减少60%,启动速度提升30%。适用于所有在JVM上运行API的生产团队,低成本实现高效能。
650 3
|
5月前
|
存储 人工智能 搜索推荐
一种专为AI代理设计的内存层,能够在交互过程中记忆、学习和进化
Mem0 是专为 AI 代理设计的内存层,支持记忆、学习与进化。提供多种记忆类型,可快速集成,适用于开源与托管场景,助力 AI 代理高效交互与成长。
650 123
一种专为AI代理设计的内存层,能够在交互过程中记忆、学习和进化
|
5月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
475 0
Linux内存问题排查命令详解
|
5月前
|
存储 大数据 Unix
Python生成器 vs 迭代器:从内存到代码的深度解析
在Python中,处理大数据或无限序列时,迭代器与生成器可避免内存溢出。迭代器通过`__iter__`和`__next__`手动实现,控制灵活;生成器用`yield`自动实现,代码简洁、内存高效。生成器适合大文件读取、惰性计算等场景,是性能优化的关键工具。
316 2
|
缓存 Linux
linux 手动释放内存
在 Linux 系统中,内存管理通常自动处理,但业务繁忙时缓存占用过多可能导致内存不足,影响性能。此时可在业务闲时手动释放内存。
664 17
|
9月前
|
缓存 Linux 数据安全/隐私保护
Linux环境下如何通过手动调用drop_caches命令释放内存
总的来说,记录住“drop_caches” 命令并理解其含义,可以让你在日常使用Linux的过程中更加娴熟和自如。
1515 23
|
11月前
|
监控 Linux Python
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
388 27
|
11月前
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
1128 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
消息中间件 Linux
Linux中的System V通信标准--共享内存、消息队列以及信号量
希望本文能帮助您更好地理解和应用System V IPC机制,构建高效的Linux应用程序。
477 48
|
缓存 Java Linux
如何解决 Linux 系统中内存使用量耗尽的问题?
如何解决 Linux 系统中内存使用量耗尽的问题?
1268 59