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

发布于 2024-11-01 15:35:52 字数 81 浏览 5 评论 0原文

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

I want to initialize an unsigned char * buffer of length 1500 so that I can store values in it from some other sources.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

寄居人 2024-11-08 15:35:52

如果您希望它位于堆上,

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

如果您希望它位于堆栈上,

unsigned char buffer[1500];

If you want it on the heap,

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

if you want it on the stack,

unsigned char buffer[1500];

念三年u 2024-11-08 15:35:52
std::vector<unsigned char> buffer(1500);
std::vector<unsigned char> buffer(1500);
躲猫猫 2024-11-08 15:35:52

执行此操作的 C 方法是

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

如果您想在初始化时不使用先前指针创建的垃圾数据,请使用 calloc,这将使用字符 0 初始化缓冲区。

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

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

The C way of doing this is

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

If you want to initialise without junk data created from previous pointers, use calloc, this will initialise the buffer with character 0.

The ( unsigned char * ) in front of malloc is just to type cast it, some compilers complain if this isn't done.

Remember to call free() or delete() when you're done with the pointer if you're using C or C++ respectively, as you're in C++ you can use delete().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文