-2

ここに私のコードがあります、

char buf[1];
int count=0;
while( Read(fileID, buf, 1)==1)
{
        contents = (char *)realloc(contents,(iVal+1)*sizeof(char));
        contents[count]=buf[0];
        count++;
}

libc を使用できなくなったので、再割り当てを行うにはどうすればよいでしょうか。問題は、読んでいるファイルのサイズがわからないため、再割り当てすることです。同じ問題が malloc にも存在します。

4

2 に答える 2

1

libcまたは、メモリ管理関数 (malloc/realloc/free に相当するもの) を備えた別のライブラリがない場合は、独自のメモリ マネージャーを作成する必要があります。Linux 用のカーネル モジュールを作成している場合は、おそらくkmalloc(9)およびにアクセスできます。そうでない場合は、独自のメモリ管理関数を作成する必要があります。kfree(9)krealloc

于 2013-02-12T16:16:36.127 に答える
0

lseek は、何かを読み込む前にファイルのサイズを教えてくれるので、realloc() ループは必要ありません。mmap() はそれをメモリに入れることができるので、 malloc()/free() も必要ありません。

于 2013-02-12T16:33:17.510 に答える