formatはタイプ 'unsigned int'を指定しますが、引数のタイプは 'int *' [-Wformat]です。



Format Specifies Typeunsigned Intbut Argument Has Typeint



といった:

#include const int MAX = 3 int main () { int var[] = {10, 100, 200} int i, *ptr /* Array address in pointer */ ptr = var for ( i = 0 i < MAX i++) { printf('Storage address: var[%d] = %x ', i, ptr ) printf('Stored value: var[%d] = %d ', i, *ptr )//Report an error /* Move to the next position */ ptr++ } return 0 }

解決:



/* ptr changed to: (unsigned int)ptr */ #include const int MAX = 3 int main () { int var[] = {10, 100, 200} int i, *ptr /* Array address in pointer */ ptr = var for ( i = 0 i < MAX i++) { /* ptr changed to: (unsigned int)ptr */ printf('Storage address: var[%d] = %x ', i, (unsigned int)ptr ) printf('Stored value: var[%d] = %d ', i, *ptr ) /* Move to the next position */ ptr++ } return 0 }