【发布时间】:2016-04-04 12:11:31
【问题描述】:
我想将二维字符数组作为函数的输入(实际上我的二维数组是全局的,函数没有输入),更改其中的值,然后返回另一个二维字符数组。
char stoixeia[50][7];
int main(int argc, char *argv[])
。 . .
if (strcmp(answer, "Gift")==0)
{
gift();
}
char gift ()
{
int i,j,m;
int wrong=0;
int k=0;
char usern[50];
while(wrong=0)
{
printf("Enter the username that you want to Gift:\n");
scanf("%s", &usern);
for (i=0; i<50; i++)
{
if (*usern==stoixeia[i][0])
{
wrong=1;
k=i;
}
}
}
m=strlen(usern);
for(i=0; i<m; i++)
{
stoixeia[k][6]= stoixeia[k][6] + 10;
}
return stoixeia[50][7];
}
我的想法是,如果我将数组声明为全局数组,我的函数中的所有内容都会发生变化,并且数组将得到“更新”。编译器没有显示任何错误,但是当我运行程序并且我的answer 是Gift 时,.exe 停止工作。你能给我什么建议吗?谢谢
【问题讨论】:
-
1
stoixeia[50][7];超出范围。 2. 要返回一个数组,你至少需要有一个char **。 -
顺便说一句
while(wrong=0)-->while(wrong==0) -
@SouravGhosh “超出范围”是什么意思?它在图书馆下
-
@BLUEPIXY 哦,是的,现在它没有崩溃,但不知何故,当我在
usern中输入用户名时,它什么也没找到,它总是要求我提供另一个用户名 -
"我的想法是,如果我将我的数组声明为全局数组,我的函数中的所有内容都会发生变化,并且该数组将得到“更新”。" -- 是的。真的。所以,你不需要返回数组。