c语言 指针表示二维数组问题

前两个数字分别代表了二维数组的行和列,现在我想用指针表示二维数组并且求出除了第一行的所有元素的和。现在我已经可以求出它们的和,但是我想用指针表示二维数组而不是,int list[10][10]这种方式。还有我想知道怎么把rows,cols 传到我写的方法里。也就是说 我想从txt里读取到行和列 把他们传到rows,cols里面,谢谢

你写的基本没什么问题。 

主函数

int **a;
int r,c;

定义其他变量和打开文件相同。

fscanf(fp, "%d%d",&r,&c);
if(r<=0 || c<=0) return ;
a=create(r,c);
if(a==NULL) return;

后续读取部分相同。

结尾加上内存的释放。

追问

您这样的方法是对的 但是我遇到了两个问题

问题一;程序崩溃 只读取到4 3 我尝试让下面的i<r+1,j<c+1, 可以读出文件内的矩阵(矩阵格式被打乱), 但还是崩溃。为什么使用二维指针的时候会崩溃?请给与解答

问题二 :请问读取到矩阵的时候 有什么方式可以直接读取矩阵, 换句话说 是否可以直接从第二行开始读取。 谢谢大神解答

追答

读取到4 3 那么就要i<r,j<c
至于崩溃原因, 建议上传完整代码看看。

第二个。 可以通过读取忽略第一行。 打开文件后,
int c; while((c=fgetc(fp)) != '\n');
加这样一句就好了。

追问

谢谢 您的耐心解答

追答

发现一个create的错误。 

for循环 应该是i=0;i<rows;i++

你改一下再试试。

追问

完美解决!!!!!感谢大神

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答