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