C言語なら俺に聞け! Part 125
■ このスレッドは過去ログ倉庫に格納されています
0258デフォルトの名無しさん
2006/04/10(月) 16:03:22本当に事前にファイルサイズを得られないのなら、malloc(), realloc(), fread()でやるのが無難か。
size_t size = 0;
char * buffer = NULL;
char tmpBuf[適当なバッファサイズ];
do {
size_t len = fread(tmpBuf, 1, sizeof(tmpBuf), fp);
size += len;
buffer = realloc(buffer, size);
memcpy(buffer + size - len, tmpBuf, len);
} while (len < sizeof(tmpBuf));
こんなもんかな。文字列として扱いたいなら、最後にナル文字を附加するのを忘れずに。
■ このスレッドは過去ログ倉庫に格納されています