0

長さ 32 バイトの void* 配列があり、バイト 8 からバイト 16 までのデータを削除したいとします。これらのバイトを何らかの形で「切り取る」ことは可能ですか?

4

2 に答える 2

3

C の配列はメモリの連続した領域であるため、コピーを作成せずにその部分を「切り取る」ことはできません。

これを行う方法は次のmemcpyとおりです。

char copy[16];
char *ptr = voidPtr;
memcpy(copy, ptr, 8);      // Copy bytes 0..7
memcpy(copy+8, ptr+16, 8); // Copy bytes 16..31
于 2013-07-23T17:50:42.077 に答える
0

char *インデックス 7 ~ 15に変換してゼロにするだけです。

于 2013-07-23T17:50:35.320 に答える