【发布时间】:2012-05-22 09:29:57
【问题描述】:
我想用 C++ 写一个指向文件的动态指针。
这是我在头文件中的声明:
byte* buffer;
然后在 Cpp 文件中,我分配了它:
buffer = new byte[1000];
但在动态分配中大小将大于 1000。
然后我写入文件:
ofstream myfile;
myfile.open("test.txt", ios::binary);
myfile.write((char*)buffer, 1000);
myfile.close();
如果我将缓冲区的长度指定为 1000,那么 1000 之后的其余字节将被丢弃。如果我使用: sizeof(buffer) 那么它只写了 1 个字节。
如何获取缓冲区的动态大小?
【问题讨论】:
-
那不是 C++ style,一般来说不可能从指向数组元素的指针中获取数组的大小。
-
全局变量,
new[],MAGIC_BUFFER_SIZE不需要强制转换? -
@sehe 那么我怎样才能更好地实现它>
-
@olidev:这就是你的代码有一个没有明显含义或派生的数字的地方。当你说“1000”时,为什么是 1000?为什么不是1001?你是怎么得出这个数字的?这是什么意思?如果我将其更改为 1001 会破坏什么?
标签: c++