qq_52627619 2021-09-10 10:29 采纳率: 50%
浏览 28
已结题

C语言用malloc申请19844*19844二维数组,写入位置冲突

double** kk1;
kk1 = (double**)malloc(sizeof(double*) * 19844);
for (int i = 0; i < 19844; ++i)
{
kk1[i] = (double*)malloc(sizeof(double) * 19844);
}
if (kk1 == NULL)
{
printf("error");
}
for (int i = 0; i < 19844; i++)
{
for (int j = 0; j < 19844; j++)
{
kk1[i][j] = 0;
}
}
printf("%lf", kk1[0][0]);
}
请指教!!感谢

  • 写回答

3条回答 默认 最新

  • 信仰869 2021-09-10 12:09
    关注
    for (int i = 0; i < 19844; ++i)
    {
    kk1[i] = (double*)malloc(sizeof(double) * 19844);
    }
    

    二维数组空间不是分配好了,你这循环分配,怎么可能够用啊
    你要想都赋值为0,可以用memset啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月18日
  • 已采纳回答 9月10日
  • 创建了问题 9月10日