NetBeans中的C程序——调试器或运行未停止,没有崩溃或错误消息
我在我的C程序中使用NetBeans,当我尝试为三维数组分配内存时,程序就停止了:什么都没有发生,NetBeans不再响应,但没有错误消息 代码如下所示,数字在运行时设置:NetBeans中的C程序——调试器或运行未停止,没有崩溃或错误消息,c,netbeans,C,Netbeans,我在我的C程序中使用NetBeans,当我尝试为三维数组分配内存时,程序就停止了:什么都没有发生,NetBeans不再响应,但没有错误消息 代码如下所示,数字在运行时设置: int ***my_matrix, i; my_matrix = malloc(sizeof(int**)*1); my_matrix[0] = malloc(sizeof(int*)*45169); for(i=0; i < 45169; i++) { my_matrix[0][i] = malloc(size
int ***my_matrix, i;
my_matrix = malloc(sizeof(int**)*1);
my_matrix[0] = malloc(sizeof(int*)*45169);
for(i=0; i < 45169; i++) {
my_matrix[0][i] = malloc(sizeof(int)*43604);
}
int***my_矩阵,i;
my_矩阵=malloc(sizeof(int**)*1);
my_矩阵[0]=malloc(sizeof(int*)*45169);
对于(i=0;i<45169;i++){
my_矩阵[0][i]=malloc(sizeof(int)*43604);
}
在for循环之后,不再发生任何事情
这是内存问题吗?我已经在NetBeans.conf
文件中增加了NetBeans中的堆空间,添加了参数(并重新启动了NetBeans):
-J-Xmx2048m
在netbeans\u default\u选项部分
我不知道该怎么办,也不知道问题出在哪里
我的操作系统是OSX,NetBeans是8.0版你能在终端上编译吗?可能您得到的是NetBeans中没有报告但终端中会报告的总线错误。使用更小的常量(例如,4而不是45169等等)测试同一代码可能是个好主意。sizeof(int)*43604*45169=sizeof(int)*1878MB。检查malloc的返回值。我已经用较小的常量测试了该程序,它正在工作,因此它必须与它们的大小一致:S。不是逻辑错误。好的,我将尝试在终端中运行。在这种情况下,我是否必须运行make:S,或者只运行main.c文件2048 Mb对于该阵列来说是不够的,因为存在内存块限制。尽量增加堆空间(大约是我预期的1.5倍)。