所以我是 C 的新手,并且对这个警告发生的情况遇到了麻烦。该警告是什么意思以及我该如何解决它。
我写的代码在这里:
void main(void)
{
char* name = "";
int age = 0;
printf("input your name\n");
scanf("%s\n", name);
printf("input your age\n");
scanf("%d\n", age);
printf("%s %d\n", name, age);
}
The scanf
函数取address将结果放入的变量。
写作scanf("%d", &someVar)
将通过address of the someVar
变量(使用&
一元运算符)。
The scanf
函数会将一个数字放入该地址的内存中。 (其中包含您的变量)
当你写的时候scanf("%d", age)
,你通过了value of the age
变量为scanf
。它会尝试将一个数字放入地址处的内存中0
(since age
is 0
),然后变得一团糟。
你需要通过&age
to scanf
.
您还需要分配内存scanf
将字符串读入name
:
char name[100];
scanf("%99s\n", name);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)