cc++的内存分配

cc++的内存分配,第1张

概述用样例代码说明内存分配    /* * 栈区(stack): * 存放函数的参数值、局部变量的值等 * 由编译器自动分配和释放 * 其 *** 作方式类似于数据结构中的栈 * 堆区(heap): * 一般由程序员分配和释放,若程序员不释放,程序结束时可能由 *** 作系统回收 * 分配方式类似于链表 * 注意它与数据结构

用样例代码说明内存分配 

 

/* * 栈区(stack): *      存放函数的参数值、局部变量的值等  *      由编译器自动分配和释放 *      其 *** 作方式类似于数据结构中的栈 * 堆区(heap): *      一般由程序员分配和释放,若程序员不释放,程序结束时可能由 *** 作系统回收 *      分配方式类似于链表 *      注意它与数据结构中的堆是两回事  * 全局区(静态区)(static): *      全局变量和静态变量的存储是放在一起的 *      初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域 *      程序结束后由系统释放 * 文字常量区: *      常量字符串就是放在这里 *      程序结束后由系统释放 * 程序代码区: *      存放函数体的二进制代码*/

#include <stdlib.h>#include <stdio.h>#include <string.h>int a = 0; //全局初始化区char *p1; //全局未初始化区int main(){ int b; // char s[] = "abc"; // char *p2; // const char *p3 = "123456"; //123456在常量区, p3 在栈上 static int c = 0; //全局(静态)初始化区 p1 = (char*)malloc(10); //分配的10字节的区域中堆区 p2 = (char*)malloc(20); //分配的20字节的区域中堆区 strcpy(p1,"123456"); //123456在常量区,编译器可能优化与 p3 指向的同一位置}
总结

以上是内存溢出为你收集整理的c/c++的内存分配全部内容,希望文章能够帮你解决c/c++的内存分配所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1228626.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存