我需要C中的大数组来存储一些数据.我正在研究的事情与DNA测序有关.我正在使用Visual Studio 2013.
首先,我尝试使用全局静态变量
static oligo SPECTRUM[C1][C2]
Run Code Online (Sandbox Code Playgroud)
寡核苷酸结构含有8个整数,C1为100000和C2 500.
但是视觉上说阵列很大.然后我问Google,他说使用矢量是个好主意.所以我通过用下面的代码替换上面的代码来切换到这些
static std::vector<std::vector<oligo>> SPECTRUM;
Run Code Online (Sandbox Code Playgroud)
据说在使用之前调整矢量是一件好事,所以我做了:
SPECTRUM.resize(C1);
for (int i = 0; i < C1; i++)
{
SPECTRUM[i].resize(C2);
}
Run Code Online (Sandbox Code Playgroud)
但现在我在执行上面的代码时抛出了运行时异常(调整大小)
An unhandled exception of type 'System.Runtime.InteropServices.SEHException' occurred in ConsoleApplication1.exe
Run Code Online (Sandbox Code Playgroud)
在文件xmemory0中.视觉显示此处抛出异常
else if (((size_t)(-1) / sizeof (_Ty) < _Count)
|| (_Ptr = ::operator new(_Count * sizeof (_Ty))) == 0)
_Xbad_alloc(); // report no memory
Run Code Online (Sandbox Code Playgroud)
我还想让你知道,我的计算机上有4 GB RAM可用,我估计我的程序不应该使用超过1 GB的RAM.