谁有bt365体育在线网址-mobile.365-588-36563688

36563688

Visual Studio 声明数组太大,导致溢出解决办法

2025-08-12 10:32:11 作者 admin 阅读 9367
Visual Studio 声明数组太大,导致溢出解决办法

定义double array[a][b] 数组 a=b=800 , 数组大小为800*800*sizeof(double)=800*800*8 bit 近似为4.88MB超过vs默认的1MB,解决方法有以下三种

1.用malloc申请动态内存(推荐)

#include

#include

int a=800,b=800;

double *array=(double *)malloc(a*b*sizeof(double));

// 二维数组和一维数组之间的转化

// array[i][j] <-->array[i+j*a] or array[j+b*i]

//使用完记得释放申请的内存

free(array);

2.修改VS默认的堆栈保留大小,单位bit,这里可以设置成比800*800*8 大的整数即可

参考:visual studio 声明数组太大,导致栈溢出 - 午夜稻草人 - 博客园

3.使用static

#include

#include

static double array[a][b];

在占用内存空间较大的局部数组声明的前面加static,将其从堆栈数据段挪到全局数据段即可避开因局部数组大小超过默认堆栈大小1MB造成程序不能正常运行的问题。

参考visual studio 2017 数组开大一点就不能运行了,如何修改数组范围上限-CSDN论坛

相关文章