Wal*_*uin 0 c++ buffer char c++98
有没有办法char[]通过char*C++ 中的指针来确定缓冲区的大小?我正在使用 C++98。
以下代码行都打印出“8”(本质上是sizeof(char*))。但是我正在寻找缓冲区的实际大小。
int maxBufferLen = 24;
char* buffer = new char[maxBufferLen];
std::cout << sizeof(buffer) << std::endl; // prints '8'
std::cout << ( sizeof(buffer) / sizeof(buffer[0]) ) << std::endl; // prints '8'
Run Code Online (Sandbox Code Playgroud)
在实践中,我char*在函数之间传递该缓冲区,我将无法访问maxBufferLen我用来初始化它的变量。因此,我需要使用另一种方式来确定长度。
有一般基于在一个指针数组的大小至数组的元素的任何方式。
以下是确定尺寸的典型方法:
std::span类模板(这个标准类不在 C++98 中,但您可以编写自己的有限版本)。
std::string和std::vector。'\0')。| 归档时间: |
|
| 查看次数: |
1002 次 |
| 最近记录: |