【问题标题】:How to initialize unsigned char pointer如何初始化无符号字符指针
【发布时间】:2011-04-16 17:53:11
【问题描述】:

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

【问题讨论】:

    标签: c++ c pointers char 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()。

        【讨论】:

          猜你喜欢
          • 2010-12-12
          • 2020-04-08
          • 1970-01-01
          • 2014-09-26
          • 1970-01-01
          • 2016-06-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多