-1

私はバッファを持っているので、誰かがIntをchar配列に変換するのを手伝ってもらえますか?

char *buffer = NULL;  
int lengthOfComponent = -1;   
char *obj;
buffer[index]= (char *)&lengthOfComponent; 

これを行うと、実行後にEXCESS BAD ACCESSがスローされ、memcpyを使用してobjの値をバッファに保存する方法がわかります。

4

2 に答える 2

2

もちろん、バッファ[インデックス]に書き込むことはできません。割り当てられていません!

buffer = malloc(sizeof(char) * lengthOfBuffer);

するべきです。その後、あなたがやっているように、memcpy または割り当てを使用してバッファを書き込むことができます。

于 2012-07-23T12:54:51.410 に答える
0
buffer[index] = (char *)&lengthOfComponent;

buffer[index]ポインタを間接参照するようなものです。しかしbuffer、有効な場所を指していません。したがって、ランタイムエラー。

Cソリューションはsnprintfを使用しています。試す -

int i = 11;
char buffer[10];

snprintf(buffer, sizeof(buffer), "%d", i);
于 2012-07-23T12:43:45.183 に答える