【发布时间】:2017-03-18 13:46:30
【问题描述】:
当我试图运行这个程序时,我遇到了执行问题,它只是动态地分配一个具有选定值的多维数组并将其归零。它编译正确,但没有执行。
#include<stdio.h>
#include<stdlib.h>
int main(void) {
int **tab;
int ligne;
int col;
printf("saisir le nbre de lignes volous\n");
scanf("%d", &ligne);
printf("saisir le nbre de colonnes volous\n");
scanf("%d", &col);
tab = (int**)malloc(ligne*sizeof(int*));
int i ,j;
for (i=0 ; i < ligne; i++) {
*(tab+i) = (int*)malloc(col*sizeof(int));
}
for (i = 0; i < ligne; i++) {
for (j = 0; j < col; j++) {
**(tab + i+ j) = 0;
}
}
for (i = 0; i < ligne; i++) {
for (j = 0; j < col; j++) {
printf("%d\t", **(tab + i +j));
}
printf("\n");
}
free(tab);
return 0;
}
谢谢。
【问题讨论】:
-
是的,实际上是:) 谢谢
-
使用
fgets从键盘读取,然后sscanf读取值或直接使用atoi进行转换。 -
**(tab+i+j)是访问元素的错误方式。你可以使用tab[i][j]。 -
它不执行是什么意思?
标签: c arrays multidimensional-array dynamic-allocation