2015-04-03 62 views
0

我试图在论坛中查找,但无法解决此问题。 试图从用户得到一个字符串转换成二维数组(字符***)将数据扫描到二维阵列

这里我的代码

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:%s\n", main[i][j]); 

我不能打印插入,以确保它是真正扫描到阵列的字。

是什么问题?

回答

0

如果没有重置为在这里使用后j值:

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

这将是后循环太远到你main变量,当你用它解决一个项目像这样:

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

因为j现在== numDef这是一个太过分了。 (注意:不要将你的变量命名为C程序的main()函数)

+0

哇谢谢!这样一个愚蠢的问题。我确信它是2d数组/ scanf /指针的东西。 – noyuzi 2015-04-03 12:28:29