c/c++语言开发共享读写矩阵

我写了这段代码来输入r * c矩阵

r – >行c – >列

当r c时无法产生正确的输出。

例:

r = 6,c = 2

输入:1 2 3 4 5 6 7 8 9 10 11 12

输出:

1 2 11 12 5 6 11 12 11 12 11 12

请告诉我我哪里出错了。 我不想使用恒定大小的数组。

#include  void scanmatrix(int* a[],int r,int c) { int i,j; for(i=0;i<r;i++) { for(j=0;j<c;j++) { scanf("%d",&a[i][j]); } } } void printmatrix(int* a[],int r,int c) { int i,j; for(i=0;i<r;i++) { printf("nn"); for(j=0;j<c;j++) { printf("%dt",a[i][j]); } } } int main() { int* a; int r,c,i,j; scanf("%d%d",&r,&c); a=(int *)malloc(r*c*sizeof(int)); scanmatrix(&a,r,c); printmatrix(&a,r,c); return(0); } 

    使用单指针分配2d dimesional数组意味着连续分配内存。所以你不能像[i] [j]那样使用下标,因为你需要正确地指向指针

    下面的代码显示了如何使用单个指针来存储2D数组,这与您在代码中可以实现的内容相同

     #include #define COL 2 #define ROW 6 int main() { int *p,i,j; p=(int *)malloc(ROW*COL*sizeof(int )); for(i=0;i 

    您已经分配了1-dim数组,但将其视为2-dim数组。 那要求惊喜:)

    可能的修复:

     #include  void scanmatrix(int* a,int r,int c) { int i,j; for(i=0;i 

      以上就是c/c++开发分享读写矩阵相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/519054.html

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐