【发布时间】:2014-12-27 13:08:32
【问题描述】:
从今天早上开始,我试图找到如何编辑二维数组中的特定单元格,但我试图让我的代码更简洁(想要制作函数并使它们一起工作)。
这当然不是我的整个程序,而是其中的一部分(当然是简化的)。
当我尝试编译时,“char *TableauAfficher[][]”出现以下错误:
“错误数组类型的元素类型不完整”
#include <stdio.h>
#include <stdlib.h>
void AffTableau(int *i, int *j, char *TableauAfficher[][], int *LongLargMap) //ERROR
{
for (i=0; i<LongLargMap; i++) {
for(j=0; j<LongLargMap; j++) {
printf("Tableau[%d][%d] = %c\n", i, j, TableauAfficher[i][j]);
}
printf("\n");
}
int main()
{
int i, j;
int LongLargMap = 5;
char SaisieDirection;
int SaisieNombre;
char TableauAfficher[5][5];
int *Pointeuri = &i;
int *Pointeurj = &j;
int *PointeurLongLargMap = &LongLargMap;
char *PointeurTableauAfficher = &TableauAfficher;
TableauAfficher [0][0] = 'V';
TableauAfficher [0][1] = 'V';
TableauAfficher [0][2] = 'A';
TableauAfficher [0][3] = 'V';
TableauAfficher [0][4] = 'V';
TableauAfficher [1][0] = 'V';
TableauAfficher [1][1] = 'V';
TableauAfficher [1][2] = 'A';
TableauAfficher [1][3] = 'V';
TableauAfficher [1][4] = 'V';
AffTableau(Pointeuri, Pointeurj, PointeurTableauAfficher, PointeurLongLargMap);
}
【问题讨论】:
-
您的代码似乎有很多不兼容类型的问题。编译器应该抛出警告或错误。如果没有,请检查您的编译器手册并将警告级别提高到最大。
-
将
i和j传递给函数没有任何意义。您可以在本地声明它们。 -
另外,将指针
int *LongLargMap传递给函数没有任何意义。传值int LongLargMap,更快更简单。 -
您似乎为
TableauAfficher的前两行赋值,但在函数中您似乎尝试读取所有行。读取未初始化的变量是未定义的行为。 -
@Dinodzo 你在哪里着急?!首先看我的回答。