繁体   English   中英

C中抛出异常

[英]Exception thrown error in c

我试图用C中的89401个元素制作一维数组:

double **A = (double**)malloc(89401*sizeof(double*)); 

for (i = 0; i<89401; i++)       

    A[i] = (double*)malloc(89401*sizeof(double));

但我不断收到此错误:

Exception thrown at 0x003F61E0 in final project 2.exe: 0xC0000005: Access violation writing location 0x00000000.

我不知道是什么问题。 我在网站上搜索了先前提出的问题,但没有一个对我有帮助。

如果有用于此异常的处理程序,则可以安全地继续执行该程序。

您犯了两个错误。 您说的第一个是,您尝试创建“大小为89401的1d数组”。 实际上,您尝试分配89401 * 89401双精度值,这似乎是2D数组。 正如@MikeCAT所写,如果您有8字节的双精度数,这是一个庞大的数字,即89401 * 89401 * 8字节。 第二个问题是当malloc的内存分配不成功(即结果为NULL)时,您不处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM