gpt4 book ai didi

c 指针 - 警告格式 '%x' 需要类型为 'unsigned int' 的参数

转载 作者:太空狗 更新时间:2023-10-29 17:06:24 25 4
gpt4 key购买 nike

我目前正在阅读 Hacking the art of exploitation,其中有一个我似乎无法正确理解的示例。尝试编译导致错误:

./addressof.c: In function ‘main’:
./addressof.c:8:4: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘int *’ [-Wformat]


#include <stdio.h>
int main() {
int int_var = 5;
int *int_ptr;

int_ptr = &int_var; // Put the address of int_var into int_ptr.

printf("int_ptr = 0x%08x\n", int_ptr);
printf("&int_ptr = 0x%08x\n", &int_ptr);
printf("*int_ptr = 0x%08x\n\n", *int_ptr);

printf("int_var is located at 0x%08x and contains %d\n", &int_var, int_var);
printf("int_ptr is located at 0x%08x, contains 0x%08x, and points to %d\n\n",
&int_ptr, int_ptr, *int_ptr);
}

我知道错误在哪里,我只是不确定如何解决这个问题。

最佳答案

指针的格式说明符是%p,而不是%x。 (参见 here)

关于c 指针 - 警告格式 '%x' 需要类型为 'unsigned int' 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9710857/

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