内存申请的几种方式

栈内存出了方法就会回收。
申请方式alloca
堆内存申请方式

malloc(biyte位内存)
calloc(bitye,字节)

申请40m 10241024=1m 110=10 10*4=40Mmalloc(1024*1024*10*sizeof(int))
等于calloc(1024*1024,sizeof(int))

realloc(p,size);
在原来的地址分配,如果足够没有被其他占用那么直接连续从原来的p地址开始分配 往后分配,否则会新开辟一块内存。

感受内存

#include<stdio.h>

void main() {
    int i = 90;
    printf("tes memory\n");
    int b = 1024;
    int kb = b * 1024;
    int m = kb * 1024;//1024*1024*1024 个kb
    int gb = m * 1; //2g 申请不了
    int* p= malloc(gb);//申请不能超过1g,否则测试失败了 返回nul
    if (p != NULL) {
        printf("我申请了内存%d m 地址是%#x\n ,", gb /1024/1024, &p);
    }
    else {
    printf("申请了内存%d m 失败,地址是%#x\n ,", gb /1024/1024,&p);

    }

    getchar();// 暂停
}

感受内存的值

image.png

https://blog.csdn.net/shuaishuai80/article/details/6140979

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值