長さ 32 バイトの void* 配列があり、バイト 8 からバイト 16 までのデータを削除したいとします。これらのバイトを何らかの形で「切り取る」ことは可能ですか?
質問する
694 次
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 に答える