-6

整数サイズの 100 000 を char 配列の 4 つの要素に入れる方法はありますか? sprintf または itoa を使用すると、配列は 6 つの要素を持ちます。私はこれを使用しようとしましたが、うまくいきませんでした。これらの 4 つの要素を整数に戻す方法はありますか?

char *s; 
int value = 100000; 
*((int *)s)=value;
4

1 に答える 1

2

ご了承ください:

int value = 100000; 
char *s; 
*((int *)s)=value;

初期化されていないポインタsを逆参照するため、未定義の動作が発生します。あなたがすることができます:

int value = 100000; 
char s[4]; 
*((int *)&s[0])=value;

これは、文字列 (数値を表す文字) の形式で値を出力するvalueとは異なり、(メモリ レベルで) charr 配列によって「占有された」メモリ ブロックに格納されることに注意してください。sprintf

于 2013-10-18T22:27:35.290 に答える