fstat を使用してファイル サイズを取得します。このサイズを使用して配列を宣言し、別の fstat でサイズを変更して、同じ配列を再利用したいと考えています。例:
fstat(file1, &fileStat);
fsize = filestat.st_size;
char filebuffer[size-of-file1];
/* do something */
fstat(file2, &fileStat);
fsize = filestat.st_size;
char filebuffer[size-of-file2];
/* do something */
明らかに、ファイルバッファ配列を再宣言することはできません。新しいものを宣言する必要があります。しかし、同じ配列を異なるサイズで再利用したい場合はどうすればよいですか??
ありがとう!!
編集:
filebuffer = malloc(fsize);
if(filebuffer == NULL){
perror("malloc");
onexit(sockd, 0, fd, 4);
}
と
tmpfilebuf = realloc(filebuffer, fsize);
if(tmpfilebuf){
filebuffer = tmpfilebuf;
}
else{
perror("realloc");
free(filebuffer);
onexit(sockd, 0, fd, 4);
}
しかし今、私はセグメンテーション違反を起こしました:(