我想初始化一个长度为 1500 的unsigned char * 缓冲区,以便我可以在其中存储来自其他来源的值。
问问题
19115 次
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 回答