やりたいこと
10進数を16進数に変換するプログラムを作っていたのですが、returnで変数を返すことができません。
どこが問題なのでしょうか。
エラーメッセージ test.cpp:38:12: error: cannot initialize return object of type 'int' with an lvalue of type 'unsigned char *' return str_ptr; ^~~~~~~ 1 error generated.
C++
1ソースコード 2inline int Hex(unsigned int i) 3{ 4 unsigned char buf[1024]=""; 5 unsigned char * str_ptr=&buf[sizeof(buf)-1]; 6 while(i) 7 { 8 *--str_ptr=i%16; 9 if(10>*str_ptr) 10 { 11 *str_ptr+=0x30;//0x30は0の文字コード 12 } 13 else 14 { 15 *str_ptr+=(0x41-0x0A);//0x41はAの文字コード 16 } 17 i/=16; 18 } 19 printf("%s\n",str_ptr); 20 return str_ptr; 21}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。