如何初始化无符号字符指针

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()。

【讨论】:

以上是关于如何初始化无符号字符指针的主要内容,如果未能解决你的问题,请参考以下文章

如何将 8 字节十六进制枚举值添加到无符号字符指针?

SWIG C/python 和无符号字符指针

C程序:用函数更新无符号字符指针数组

在 C 中使用指针反转字符串(必须使用无符号 *char)

将(n个第一个字节)无符号字符指针转换为浮点数和双精度C++

MFC:特有的数据类型