3

我想初始化一个长度为 1500 的unsigned char * 缓冲区,以便我可以在其中存储来自其他来源的值。

4

3 回答 3

14

如果你想把它放在堆上,

unsigned char* buffer = new unsigned char[1500];

如果你想要它在堆栈上,

unsigned char buffer[1500];

于 2011-04-16T17:56:22.130 回答
2
std::vector<unsigned char> buffer(1500);
于 2011-04-16T19:03:23.997 回答
1

这样做的C方式是

unsigned char * buffer = ( unsigned char * )malloc( 1500 * sizeof( unsigned char ) );

如果要在没有从先前指针创建的垃圾数据的情况下进行初始化,请使用 calloc,这将使用字符 0 初始化缓冲区。

malloc 前面的 ( unsigned char * ) 只是为了进行类型转换,如果没有这样做,一些编译器会抱怨。

如果您分别使用 C 或 C++,请记住在使用完指针后调用 free() 或 delete(),因为您在 C++ 中可以使用 delete()。

于 2013-04-22T14:08:48.767 回答