c-C++,定义大数组时出现了未知错误

问题描述

C++,定义大数组时出现了未知错误

错误

 ||=== Build: Debug in proj1 (compiler: GNU GCC Compiler) ===|
obj/Debug/main.o||In function `__static_initialization_and_destruction_0':|
 relocation truncated to fit||R_X86_64_32 against `.bss'|
 relocation truncated to fit||R_X86_64_32 against `.bss'|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

我的代码

 #include<iostream>
using namespace std;
int a[99999999999999];
int main()
{
    return 0;
}

解决方案

99999999999999*4/1024/1024/1024=372529G=363.8T
可以将数据保存在数据库中或文件中进行处理。
保存在文件的话可以一个对象保存为一行,一行一行读取并处理。

解决方案二:

你要那么大的数组干什么 99999999999999*4 你算算多少个字节

解决方案三:

函数内定义大数组出现段错误
程序中定义了大数组或需要很大栈内存时,出现stack overflow 错误的解决方法(vs2008)

解决方案四:

一个程序可分配的最大栈内存是有限制的,如果大的话可以用堆内存,但也需要判断是否能够成功。

解决方案五:

太大了。不过以前定义时有这么弄过
#define MAX_SIZE 10000000
int a[MAX_SIZE]


时间: 2024-09-19 23:56:06

c-C++,定义大数组时出现了未知错误的相关文章

PHP的array_diff()函数在处理大数组时的效率问题_php技巧

cisa 提交到 PHP 官方 BUG 页面上的方法 复制代码 代码如下: <?php /** * 解决 php 5.2.6 以上版本 array_diff() 函数在处理 * 大数组时的需要花费超长时间的问题 * * 整理:http://www.CodeBit.cn * 来源:http://bugs.php.net/47643 */ function array_diff_fast($data1, $data2) { $data1 = array_flip($data1); $data2 =

用mysql做站点时怎样记录未知错误的发生

当使用MySQL做站点的时候,肯定会有不知道的错误发生,怎么记录呢?以下是具体解决方法: class.method //建立错误日志 function error(){ +"); $time=date("Y-m-d H:i:s"); $msg="{VisitedTime:$time}\t {VisiterIP:$_SERVER[REMOTE_ADDR]}\t {Errormsg:".MySQL_error()."}\t {File:->$_

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

求大神讲解一下指针指向二维数组时该怎么用?

问题描述 求大神讲解一下指针指向二维数组时该怎么用? 指针指向一维数组时只用*(p+n)即可,但是二维数组时候改怎么用呢? 解决方案 个人认为其实二维数组还是一维数组,没有什么区别,例如int a[3][4],就相当于int a[12].要想访问a[2][3],就用*(a+(4*2+3)*(sizeof(int))),应该是这样,不过我一般用a[4*2+3] 来访问对应的元素 本人也是菜鸟,如果有错还请大神们指正~ 解决方案二: 由于指针与数组之间可以若转化,所以在一定程度上可以理解为数组就是指

java在定义二维数组时定义第二层数组出现的问题

问题描述 java在定义二维数组时定义第二层数组出现的问题 解决方案 triang已经定义了,不需要重复定义,去掉报错那行定义的int 解决方案二: 去掉错误那行前面的int 解决方案三: 下边不是已经可以了吗,想说啥 解决方案四: java动态定义二维数组问题关于vector定义二维数组的问题Java定义二维数组的几种方法

java中创建数组时内存怎么分配????

问题描述 java中创建数组时内存怎么分配???? int[] arr=new int[3]; 问题: 上面创建int数组时,怎么分配内存的?arr是一个引用变量,是通过指针指向new int[3](存在堆里面)对吧,那么,栈里面为arr分配几个指针,是3个还是1个? 补充: 疑问1****: 其实我就是想知道java中创建数组时,栈中分配几个指针,是一个还是"数组长度"个? 疑问2****: 如果是一个,那么,这个指正指向谁???? 疑问3****: 如果指向的是第一个元素,那么,该

c++-C++中,定义的数组怎么由输入来确定维度

问题描述 C++中,定义的数组怎么由输入来确定维度 eg: int a[m][n]; 请问这个mn的值怎么通过用户输入来获取; 解决方案 int main(){ int n; int m; int **p = new int*[m]; for(int i = 0; i < m; i++) { p[i] = new int[n]; } return 0;} 解决方案二: 数组一般都是编译时分配内存,必须知道大小,否则编译器报错,如果程序需要运行时分配存储空间的话,用动态内存分配方法 解决方案三:

内存管理-如何解决C#向C++DLL传递 struct数组时产生的数据丢失问题?

问题描述 如何解决C#向C++DLL传递 struct数组时产生的数据丢失问题? 运行环境:win8.1+vs2010 目的:将C#中的结构体数组传到C++的动态链接库中 代码: //DLL中的接口,C++ struct Target { int ID; double PosX double PosY; float Aangle; long EncoderValue; }; class Backstage { EXTERN_C BACKSTAGE_API int WINAPI Allocater

定义一个数组,为什么这个数组里面既可以是单个的字符用逗号隔开,也可以是字符串呢

问题描述 定义一个数组,为什么这个数组里面既可以是单个的字符用逗号隔开,也可以是字符串呢 定义一个数组,为什么这个数组里面既可以是单个的字符用逗号隔开,也可以是字符串呢,字符串和字符的关系 解决方案 字符数组可以直接用双引号,这是C语言为了方便字符串定义而开的特例. 解决方案二: 字符串是又一个个字符组合而成定义数组时数组里面既可以是单个的字符用逗号隔开,那是一个个对数组的元素进行赋值也可以是字符串那是因为在内存中,一个数组里面的元素其实它们地址是相连的,只要得到首地址再加上每个地址块大小,变可