0

ファイルのいくつかの部分から読み取り、それを1つのunsignedcharとして出力したいと思います。これは、これを簡略化したものです。

void loadPartsOfFile (const char *filename, unsigned char **output)
{
    *output = malloc(333);

    FILE *file = fopen(filename, "rb");
    fseek(file, 0, SEEK_SET); 
    fread(*output, 1, 111, file);
    fseek(file, 10254, SEEK_SET);
    fread(*output, 1, 222, file);

    fclose(file);
}

2番目のfreadは、最初に出力に追加されたものを上書きするだけです。出力に2番目のデータストリームを追加する方法はありますか?

4

2 に答える 2

2
void loadPartsOfFile (const char *filename, unsigned char **output)
{
    *output = realloc(*output, 333);

    FILE *file = fopen(filename, "rb");
    fseek(file, 0, SEEK_SET); 
    fread(*output, 1, 111, file);
    fseek(file, 10254, SEEK_SET);
    fread(*output+111, 1, 222, file);

    fclose(file);
}
于 2012-04-15T16:58:37.793 に答える
2

*output前の読み取りが終了するまでインクリメントするだけ*output + 111です。

于 2012-04-15T17:00:45.667 に答える