私はCに比較的慣れていないので、なぜatoi
この状況で問題が発生するのか興味があります。基本的なことを理解していないような気がします。これが私のサンプルコードです:
int main()
{
char last[3];
last[2]='\0';
uint16_t num1;
uint16_t num2;
// I read in num1 and num2 from a file and do an integer operation on them. bigarray is the file contents. bigarray[i] is a integer
num1=bigarray[i] - 1;
num2=bigarray[i+1] - 1;
last[0]=(char)num1;
last[1]=(char)num2;
printf("%i\n:", atoi(last));
}
印刷し last[0]
てlast[1]
別々に印刷すると、正しい値が得られます。私が印刷するときatoi(last)
、それは私に与えます0
。
なぜこの状況でatoi
私に与えるのです0
か、そしてどうすればそれを修正できますか?