формат указывает тип 'char *', но аргумент имеет тип 'char - PullRequest
0 голосов
/ 29 марта 2019

Я пишу некоторый код, и я очень плохо знаком с c.Мне нужна помощь !!

Я пытался изменить некоторые вещи, но, поскольку я новичок в этом, это действительно не помогло

int main()
{

  char name[10];
  int age;

  printf("what is your name");
  scanf("%s", &name);

  printf("what is your age");
  scanf("%d",&age);

  printf("%s",name);
  printf("%d",age)

}
format specifies type 'char *' but the argument has type 'char (*)[10]' [-Wformat]

Ответы [ 2 ]

4 голосов
/ 29 марта 2019

замените

scanf("%s", &name);

на

 scanf("%s", name);

или установите также максимальный размер:

 scanf("%9s", name);

, однако, есливходная строка больше 9 символов, даже если в name (больше нулевой символ) заданы только 9 символов, следующие символы не отбрасываются, поэтому scanf("%d",&age); не будет работать должным образом

Я рекомендую вамвсегда проверять значение, возвращаемое scanf

0 голосов
/ 29 марта 2019

В строке scanf("%s", &name); вы должны удалить &.Аргументом для формата %s является указатель на начало строки, равное name.То, что вы делаете, передает указатель на указатель на строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...