【发布时间】:2011-04-16 17:53:11
【问题描述】:
我想初始化一个长度为 1500 的 unsigned char * 缓冲区,以便我可以在其中存储来自其他来源的值。
【问题讨论】:
标签: c++ c pointers char unsigned-char
我想初始化一个长度为 1500 的 unsigned char * 缓冲区,以便我可以在其中存储来自其他来源的值。
【问题讨论】:
标签: c++ c pointers char unsigned-char
如果你想把它放在堆上,
unsigned char* buffer = new unsigned char[1500];
如果你想在堆栈上,
unsigned char buffer[1500];
【讨论】:
std::vector<unsigned char> buffer(1500);
【讨论】:
这样做的C方式是
unsigned char * buffer = ( unsigned char * )malloc( 1500 * sizeof( unsigned char ) );
如果你想在没有从以前的指针创建的垃圾数据的情况下进行初始化,请使用 calloc,这将使用字符 0 初始化缓冲区。
malloc 前面的 (unsigned char *) 只是类型转换,如果不这样做,一些编译器会抱怨。
如果您分别使用 C 或 C++,请记住在使用完指针后调用 free() 或 delete(),因为您在 C++ 中可以使用 delete()。
【讨论】: