我正在学习C,我正在玩结构,但我发现了一些我无法解释的行为,我想知道它为什么会发生.
这是我的代码:
struct my_struct{
char *name;
};
int main()
{
struct my_struct arr[3];
int i = 0;
char str[10];
while (i<3)
{
fgets(str, 10, stdin);
arr[i].name = str;
printf("Array number %d: %s", i, arr[i].name);
i++;
}
printf("1 - %s\n2 - %s\n3 - %s", arr[0].name, arr[1].name, arr[2].name);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的意见:
test1
test2
test3
Run Code Online (Sandbox Code Playgroud)
预期产量:
Array number 0: test1
Array number 1: test2
Array number 2: test3
1 - test1
2 - test2
3 - test3
Run Code Online (Sandbox Code Playgroud)
结果输出:
Array number 0: test1 …Run Code Online (Sandbox Code Playgroud)