所以我需要创建动态大小矩阵并且我需要使用 malloc 因为它的最大大小必须是 10 000。我试过类似的东西:
double *matrix =malloc(rowCount * colCount * sizeof (double));
我正在使用这个向这个矩阵添加值:
for (i =0;i<rowCount;i++){
for (j=0;j<colCount;j++){
matrix[i* colCount+j]=(double)i;
}
}
但是当我想使用这个获取值时:
for (i=0;i<rowCount;i++){
for(j=0;j<colCount;j++){
printf("%d",matrix[i*colCount+j]);
}
printf("\n");
}
我得到的所有位置都是 0。 任何人都可以帮助我并告诉我我在这里做错了什么?
最佳答案
%d
不用于打印 float 。你想要 %f
如果您在具有 32 位整数和 64 位 double 的平台上,您的代码将打印完全为 0 的 float 部分。
https://en.wikipedia.org/wiki/Double-precision_floating-point_format
关于无法在 malloc 矩阵中输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36715558/