我需要能够根据文件中的字节数设置数组的大小.
例如,我想这样做:
// Obtain the file size.
fseek (fp, 0, SEEK_END);
size_t file_size = ftell(fp);
rewind(fp);
// Create the buffer to hold the file contents.
char buff[file_size];
Run Code Online (Sandbox Code Playgroud)
但是,我得到一个编译时错误,说缓冲区的大小必须是常量.
我怎么能做到这一点?
Joh*_*itb 10
使用矢量.
std::vector<char> buff(file_size);
Run Code Online (Sandbox Code Playgroud)
整个矢量首先自动填充'\ 0'.但是"失去"的表现可能并不明显.它当然更安全,更舒适.然后像通常的数组一样访问它.您甚至可以将指向数据的指针传递给传统C函数
legacy(&buff[0]); // valid!
Run Code Online (Sandbox Code Playgroud)