c-将数据扫描成二维阵列



我尝试在论坛中查找,但无法解决此问题。在试图从用户那里获得一个字符串到2d数组(char***)中

这是我的代码

int i=0;
int j=0;
if(!(main=(char***)malloc(numWords*sizeof(char**))))
    exit(1);
if(!(main[i]=(char**)malloc((numDef+1)*sizeof(char*))))
    exit(1);
if(!(main[i][j]=(char*)malloc((80)*sizeof(char))))
    exit(1);
for (j=1; j<numDef; j++)
    {
        if(!(main[i][j]=(char*)malloc((200)*sizeof(char))))
            exit(1);
    }
printf ("please Enter word: n");
scanf("%s",main[i][j]); // Here is the problem
printf("Word typed:%sn", main[i][j]);

我无法打印插入的单词以确保它真的被扫描到数组中。

问题出在哪里?

如果在此处使用j值后没有重置:

for (j=1; j<numDef; j++)

当你在循环之后使用它时,它会在main变量中处理一个太远的条目,如下所示:

scanf("%s",main[i][j]); // Here is the problem

因为CCD_ 3现在是CCD_。

(注意:不要像C程序的main()函数那样命名变量)

相关内容

  • 没有找到相关文章

最新更新