小编Nic*_*ico的帖子

循环内的结构数组

我正在学习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)

c arrays struct loops

1
推荐指数
1
解决办法
95
查看次数

标签 统计

arrays ×1

c ×1

loops ×1

struct ×1