为什么我的第一个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);`
quanta1 回答:为什么我的第一个gets()不起作用?我有一些,而代码块总是忘记第一个?

  

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

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

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

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


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

本文链接:https://www.f2er.com/3132012.html

大家都在问