如何初始化无符号字符指针
我想初始化一个长度为 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您希望它位于堆上,
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];
执行此操作的 C 方法是
如果您想在初始化时不使用先前指针创建的垃圾数据,请使用 calloc,这将使用字符 0 初始化缓冲区。
malloc 前面的 ( unsigned char * ) 只是对其进行类型转换,有些如果不这样做,编译器会抱怨。
如果您使用的是 C 或 C++,请记住在使用完指针后分别调用 free() 或 delete(),因为在 C++ 中您可以使用 delete()。
The C way of doing this is
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().