我们最近收到一份报告,说我们的应用程序偶尔会无法运行.我将问题代码跟踪到此:
struct ARRAY2D
{
long[] col;
}
int numRows = 800000;
int numCols = 300;
array = (ARRAY2D*) malloc(numRows * numCols * sizeof(long))
Run Code Online (Sandbox Code Playgroud)
如果用户没有足够大的空闲块,则800 MB的这种分配可能会失败.改变我分配内存的最佳方法是什么?
请记住,我有大量代码访问此对象,如下所示:array [row] .col [colNum],所以我需要一些需要次要或主要查找和替换数组访问代码编辑的东西.