码迷,mamicode.com
首页 > 编程语言 > 详细

C语言之内存空间

时间:2019-09-16 19:58:05      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:申请   amp   cli   ffd   mem   style   return   display   col   

C语言可以用malloc关键字动态申请内存空间。数组在定义时就必须确定好空间的大小(固定值),动态申请可以由用户自定义空间的大小。c中只要申请了空间就必须free()释放掉,否则会造成内存泄露。

技术图片
#include<stdio.h>
#include<windows.h>

int main() {
    int* p = NULL;
    int a = 0;
    scanf_s("%d",&a);//使用malloc动态申请内存,用户可以自己定义申请多少个int,不造成空间浪费。数组则不行,数组在定义时必须确定好数组长度(空间大小)
    p=(int *)malloc(sizeof(int)*a);
    free(p);//释放申请的空间(堆),否则会造成内存泄露

    system("pause");
    return 0;
}
动态申请堆内存空间

 c语言内存区域划分:

代码区:存放代码。

常量区:字符串。

栈区:局部变量。

堆区:malloc申请的地址。

全局数据区:全局变量和static局部变量。

动态申请内存空间之后一般都要初始化,以防申请的空间里面存在一些值运行时出现错误。

*memset()函数用来初始化内存,*memcpy()函数把内存数据复制到另一块内存中。

内存释放: free(p)函数不能释放除了堆以外的内存空间,不能对一块堆空间重复释放2次。

C语言之内存空间

标签:申请   amp   cli   ffd   mem   style   return   display   col   

原文地址:https://www.cnblogs.com/PrideAssassin/p/11528987.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!