zoukankan      html  css  js  c++  java
  • 内存分配

    VC定义数组时请注意大小!定义时,局部数组大小<=1MB,全局数组<=2GB,定义时如果超过这个限制将会出现如"segment error"之类的错误.以下的程序可以帮助你证明这一点.

    以下程序数组如果再大点,运行出错,说明局部变量分配内存<=1MB
    #include<stdio.h>
    int main()
    {
    int a[1024*1024/4-4000];
    int i;
    for(i=0;i<1024*1024/4-4000;i++)
    {
    a[i]=i;
    printf("%d ",a[i]);
    }
    return 0;
    }

    以下程序数组如果再大点,运行出错,说明全局变量分配内存<=2GB
    #include<stdio.h>
    int a[1024*1024*470];
    int main()
    {
    long int i;
    for(i=0;i<1024*1024*470;i++)
    {
    a[i]=i;
    printf("%d ",a[i]);
    }
    return 0;
    }


    内存的三种分配方式:静态存储区分配,栈上分配,堆上分配。 全局数组是在静态存储区分配,而局部数组是在栈上分配,所以大小受到的限制不一样.

    勿忘初心
  • 相关阅读:
    Analog power pin UPF defination
    动态功耗计算
    静态功耗 计算
    Innovus 对multibit 的支持
    P &R 12
    P & R 11
    power-plan如何定
    P & R 10
    P & R 9
    线程基础
  • 原文地址:https://www.cnblogs.com/YY56/p/4920325.html
Copyright © 2011-2022 走看看