当我尝试编译它时,我收到以下错误,不知道为什么……
警告:格式“%x”需要类型为“unsigned int”的参数,但参数2的类型为“char *”[-w format =]
printf("Name buffer address: %x\n", buffer);
代码:
#include <string.h>
#include <stdio.h>
main(){
char name[200];
printf("What is your name?\n");
scanf("%s", name);
bo(name, "uname -a");
}
int bo(char *name, char *cmd){
char c[40];
char buffer[40];
printf("Name buffer address: %x\n", buffer);
printf("Command buffer address: %x\n", c);
strcpy(c, cmd);
strcpy(buffer, name);
printf("Goodbye, %s!\n", buffer);
printf("Executing command: %s\n", c);
fflush(stdout);
system(c);
}
要打印地址,请使用“%p”
而不是
。您还需要强制转换为
void*
printf("Name buffer address: %p\n", (void *) buffer);
您收到警告是因为以下陈述
printf("Name buffer address: %x\n", buffer);
printf("Command buffer address: %x\n", c);
< code>%x需要< code>unsigned int,而您提供的是指针。
参考 C11
标准,第 §7.21.6.1 章
o,u,x,X
无符号 int 参数在样式 dddd 中转换为无符号八进制 (o)、无符号十进制 (u) 或无符号十六进制表示法(x 或 X);[...]
提供无效参数会调用未定义的行为。
您应该使用 %p
打印地址
p
参数应是指向void
的指针。[…]
并将参数强制转换为 void *
,因为对于指针类型,不会发生默认参数升级。
话虽如此,
main()
应该是< code>int main(void),至少要符合标准。 < li >您需要向前声明您的函数< code>bo(),因为现在隐式声明是不好的和不标准的。
设置一个应该在图像上放置广告的应用程序时,我在运行代码时遇到了这个WordPress错误,这是一个令人沮丧的星期试图修复这个问题。 我希望它能工作,但它给了我以下错误:警告:preg_replace_callback():需要参数2,' 如果有人能想出一个解决方案,那将是惊人的,非常感谢!
我刚刚更新了PHP在我的服务器从PHP 5到PHP 7,我得到了这些警告: 警告:preg_replace_callback()[function.preg-replace-callback0]:要求参数2“chr(\1)”是有效的回调 警告:preg\u replace\u callback() 警告:preg_replace_callback()[function.preg-replace-c
我正在获得我想要的输出,但不知道如何摆脱这些警告。任何帮助是值得赞赏的。 警告: > < li> Format指定类型“void *”,但该参数的类型为“char”[-w Format]printf(" \ n指针变量的值为%p\n ",* myString); " Format指定类型为' void * ',但该参数的类型为' char' [-Wformat] printf("%p\n ",my
我对c中的属性格式说明符感到困惑。我在编译一些代码时遇到了一个警告。以下是警告: 警告:格式的参数太多 [-W 格式-额外参数] 下面是一个示例代码: 输出如下: 只要满足以下条件(基于实验),就会发出警告: < li >要检查的格式为空。 < li >在属性格式说明符的第三个参数中传递了一个零 < li >格式不是函数中的最后一个参数。 以下代码似乎工作正常,这让我相信NULL是一个有效的字符串
你能告诉我下一个错误是什么吗? 正在运行解决方案。。。编译成功。 示例测试:[-1, 3, -4, 5, 1, -6, 2, 1]输出(stderr):无效的结果类型,int预期。RUNTIME ERROR(测试程序意外终止) 检测到一些错误。 我的解决方案写在PHP上。 给定下一个数组时,我的函数的输出为: 输出 数组([0]= 就像他们在任务中要求我一样,但是Codibility向我展示了所有
我是斯威夫特的新人,现在尽我所能地学习这个。我写了得到参数的函数:数字和函数,它们与这个数字一起工作: 但是编译给出错误。当我试图改变论点时,比如