我正在使用cstdio (stdio.h)
从二进制文件读取和写入数据。由于遗留代码,我必须使用这个库,并且它必须与Windows和Linux跨平台兼容。我有一个FILE* basefile_
,我用它来读取变量configLabelLength
和configLabel
,其中configLabelLength
告诉我有多少内存分配给configLabel
。我可以使用无指针的fread读取动态长度变量吗?
unsigned int configLabelLength; // 4 bytes
char* configLabel = 0; // Variable length
fread((char *) &configLabelLength, 1, sizeof configLabelLength, baseFile_);
configLabel = new char[configLabelLength];
fread(configLabel,1, configLabelLength,baseFile_);
delete [] configLabel; // Free memory allocated for char array
configLabel = 0; // Be sure the deallocated memory isn't used
有没有办法在configLabel
不使用指针读?例如,有一种解决方案,我可以使用C++矢量库或者我不必担心指针内存管理的问题。
有什么理由不使用C++的文件流吗? – Cogwheel 2010-07-15 19:19:37
@Cog:在问题的顶部。 :)和+1寻求使用向量。 – GManNickG 2010-07-15 19:21:13
@Cogwheel由于遗留代码,我不得不使用'cstdio(stdio.h)'。我知道这并不理想。 – Elpezmuerto 2010-07-15 19:21:26