gpt4 book ai didi

arrays - 警告 : format ‘%s’ expects type ‘char *’ , 但参数 2 的类型为 ‘char (*)’

转载 作者:行者123 更新时间:2023-11-30 16:15:11 28 4
gpt4 key购买 nike

我正在尝试运行一个简单的 C 程序,但收到此错误:

warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘char (*)[20]’

运行 Mac OSX Mountain Lion,使用 gcc 4.2.1 在终端中编译

#include <stdio.h>

int main() {
char me[20];

printf("What is your name?");
scanf("%s", &me);
printf("Darn glad to meet you, %s!\n", me);

return (0);
}

最佳答案

scanf("%s", &me);

应该是

scanf("%s", me);

说明:

"%s" 表示 scanf 需要一个指向 char 数组第一个元素的指针。

me 是一个对象数组,可以作为指针进行计算。这就是为什么你可以直接使用 me 而无需添加 &。将 & 添加到 me 将被评估为 'char (*)[20]' 并且您的 scanf 正在等待 char *

代码评论家:

如果用户输入的字符串长度大于20,使用"%s"可能会导致缓冲区溢出,因此请将其更改为"%19s":

scanf("%19s", me);

关于arrays - 警告 : format ‘%s’ expects type ‘char *’ , 但参数 2 的类型为 ‘char (*)’,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57247560/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com