Tôi hiện đang đọc Hacking nghệ thuật khai thác và có một ví dụ trên đó mà tôi dường như không thể chính xác. Đang cố gắng biên dịch kết quả do lỗi:c con trỏ - định dạng cảnh báo '% x' hy vọng các đối số của loại 'unsigned int'
./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);
}
Tôi hiểu được lỗi ở đâu, tôi không chắc chắn cách khắc phục điều này.
@larsmans - anh ấy lưu nó trong 'int *', đó có phải là vấn đề không? – MByD
@BinyaminSharet: đừng bận tâm, đọc sai mã. –