C/C++面试:47---在VC 6.0中定义一个数组a[1024][1024],能够运行吗?

一、题目描述

  • 在VC 6.0中定义一个数组a[1024][1024],能够运行吗?

二、答案

  • 如果定义为局部数组,那么不可以运行
  • 定义为全局数组或者静态数组可以运行

三、解析

  • 假设我们的VC 6.0中int占4字节,那么a[1024][1024]的大小=(1024*1024*4)Byte=4096Kb=4M

定义为局部数组

  • 在Windows中,单个进程的默认栈大小1M,因此其不能够满足a[1024][1024]的大小,因此会出错

定义为全局数组

  • 因为全局数组存储在全局数据区,全局数据区的大小大于4M,因此能够运行

定义为静态数组

  • 静态数组与全局数组存储的地方都是一样的,也存储在全局数据区的,因此也可以运行

你可能感兴趣的:(C/C++面试)