无法在 malloc 矩阵中输入值

标签 c matrix malloc

所以我需要创建动态大小矩阵并且我需要使用 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/

相关文章:

c - 如何使用 GCC 获取与程序集输出内联的源代码行?

matlab - 如何在 MATLAB 中可视化 3D 矩阵

matlab - 如何在 matlab 中将给定的邻接矩阵表示为无向加权图?

c - 如何在C中打印如下图案?

c - 使用 fflush(stdin)

c - 当我们使用新的结构初始化格式时,未列出的成员是否有未指定的值?

c++ - 如何顺时针打印二维矩阵?

C - 如果矩阵大于 5x5,矩阵输入函数会出现运行时错误,但代码中没有定义大小

正确的二维数组内存分配/解除分配?

c - 如何在 C 中释放这个结构?