C++ 定义数组大小问题

一般情况下VC++编译的程序一个线程的栈的大小默认为1M(其他的编译器定义的栈大小也不会很大),定义数组大小 比如 int a[1000][1000]; 的时候就会出错,大小有1000*1000*4 = 3.8M,当然会发生栈溢出错误。
解决的办法很简单,将这个大的数组放到其他地方即可,比如可以将这个数组放到静态存储区(定义为全局或静态static的),或者放到堆上(用new或malloc等等实现)
另外,在编译器中修改默认栈大小也可解决这个问题(但不推荐)
例:
//在堆上创建1000*1000的数组
int** a = new int*[1000];
for(int i = 0; i < 1000; i++)
{
a[i] = new int[1000];
}
时间: 2024-09-17 23:38:46

C++ 定义数组大小问题的相关文章

求C语言高手解惑,一个关于const变量定义数组大小问题

问题描述 求C语言高手解惑,一个关于const变量定义数组大小问题 我在函数的外部定义了一个BlockSize,然后又定义了一个结构(两者都是在函数外部).编译的时候,出现一个error.提示说:variably modified 'array' at file scope const int BlockSize = 20;//define BlockSize 20typedef struct _node { int array[BlockSize]; struct _node* next;}N

linux 编译-C++ linux Typedef 定义数组大小判断

问题描述 C++ linux Typedef 定义数组大小判断 头文件内定义了: typedef struct { unsigned char headtag; unsigned int ipacket; unsigned short packetLen; unsigned short checkcode; } tagUDPHead; cpp 文件里面:159 cout<<"tagUDPHead:"<<sizeof(tagUDPHead)<<endl

c++ 数组大小问题

问题描述 c++ 数组大小问题 在c++中,怎么样比较两个数组元素的大小,并按从小到大的顺序一起输出来. 解决方案 如果是数字,比较大小直接比好了.如果是字符串,用strcmp,如果是别的,根据要求比较. 至于排序,冒泡.快速.选择.插入多了去了,也可以用现成的qsort等函数. 这样的代码google下大把. 解决方案二: 用vector存放数组,用成员函merge将两个函数融合,再sort成员函数融合即可 解决方案三: C++ 定义数组大小问题c++中类的大小问题C++中类的大小问题 解决方

jdk-利用Arrays.asList定义固定大小数组时失败

问题描述 利用Arrays.asList定义固定大小数组时失败 刚开始接触Ajax,实现用户名是否可用要运用到下列函数....Arrays中的asList总会有下划线提示错误,尝试很多方法都解决不了.刚开始学,也不是很懂这些代码是什么意思..用的是jdk1.6.0 import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.Http

c 字符串输入-c语言中如何动态输入字符串而不需要事先定义字符数组大小

问题描述 c语言中如何动态输入字符串而不需要事先定义字符数组大小 如标题 c语言中如何动态输入字符串而不需要事先定义字符数组大小或为字符指针分配空间 解决方案 你这个要求实际使用度太低,或者说,完全没有必要非要这样去想. 解决方案二: c语言中字符串与字符数组c语言中的字符数组与字符串C语言 字符数组和字符串 解决方案三: 你这样定义好了char *p; 解决方案四: #include #include #include #define Step 10 //空间增加的步长. char * get

ASP技巧之定义数组方法

技巧|数组 [注意:本文提到的数组是Visual Basic中数组的定义,对asp编程有一定的参考价值!] 数组是有序数据的集合.数组中的元素可以不属于同一个数据类型.用一个统一的数组名和下标来唯一地确定数组中的元素,更改其中一个元素并不会影响其它元素.数组的下标是有界的,分为下界和上界.数组可以用Dim.Private.Public或Static来声明,它们的语法格式相同.下面只介绍用Dim声明数组的方法. 1.数组的定义与声明 数组的定义语法如下: Dim 数组名( [[下标下界 To ]

JavaScript jQuery 中定义数组与操作及jquery数组操作_jquery

首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象 Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能 1.1 定义数组 声明有10个元素的数组 复制代码 代码如下: var a = new Array(10); 此时为a已经开辟了内存空间,包含10个元素,用数组名称加 [下标] 来调用,例如

list-link中定义数组为什么会初始化,而定义List就不会初始化,是不是数组的效率低?

问题描述 link中定义数组为什么会初始化,而定义List就不会初始化,是不是数组的效率低? link中定义数组为什么会初始化,而定义List就不会初始化,是不是数组的效率低? 解决方案 实际上List内部也是初始化的,List内部还是维护的一个数组.数组的效率比List快的微乎其微,可以放心. 解决方案二: 数组基本属于静态数据结构,知道大小,可以初始化 而list一开始为空,也不知道大小,怎么初始化? 效率的高低看操作,数组access效率高,添加删除效率低,list与之相反

c-能不能实现超过数组大小的数据存储并显示

问题描述 能不能实现超过数组大小的数据存储并显示 比如定义10空间的数组,能否存11个数.用java能实现么.求教啊 解决方案 你的空间只有10个数,你是肯定不能存11个的.除非你把前面的空间删除了数据把新的写进去,又或者不够的时候再开新的空间出来 解决方案二: 不能 java的话可以使用List集合,具体可以选择使用数组实现的ArrayList或者链表实现的LinkedList,如果不确定选择什么合适那么用ArrayList即可 集合是可以动态增加长度的,你只需要一开始new一个集合出来,不需