为什么我的第一个gets()不起作用?我有一些,而代码块总是忘记第一个?

时间:2019-11-09 17:02:50

标签: c string codeblocks gets

我使用的是gets(),因为这很简单,我们被告知要这样做。 就像我没有gets(&a)...

    ` char a,b,c;
      switch(x);
            case '1':printf("Please enter the author\n");
                     printf("Author:");
                     gets(&a);
                     printf("\nTitle:");
                     gets(&b);`

1 个答案:

答案 0 :(得分:1)

  

为什么我的第一个gets()不起作用?

gets(char *);需要一个指向一个位置的指针,以形成一个非零长度的字符串。

char a的大小只能容纳长度为零的""字符串。

gets(&a);是缓冲区溢出-研究未定义的行为。


“我使用的是gets(),因为这很简单,我们被告知要这样做。” ->对不起,您的学校/工作是这样。推荐研究更好的学校。