【问题标题】:Converting unsigned short* to int* [closed]将 unsigned short* 转换为 int* [关闭]
【发布时间】:2014-04-04 18:44:44
【问题描述】:

如何在 C++ 中将 unsigned short* 转换为 int*

【问题讨论】:

  • 您为什么要这样做?到目前为止,您尝试过什么?
  • 我试过演员,但没有奏效。该函数将 int* 作为输入,但我的数据类型是 unsigned short*,所以我认为需要转换?
  • 是的,但是您需要转换输入中的每个项目...发布更多代码,以便我们知道您在做什么(您要求“盲人”回答,如果我们看不到它)...
  • 请记住,shortint 是两种不同的类型,具有不同的大小(在大多数现代架构中)。因此,您不能只将一个指针转换为另一个指针(是的,您可以使用 reinterpret_cast,但 that 可能不是您想要的 .. .)
  • 您需要指定是否希望每个 int 包含一个短值,或多个打包短值。

标签: c++ pointers casting


【解决方案1】:

听起来你想要这样的东西:

    unsigned short * p1;
    std::vector<int> vec(p1, p1 + p1_size);
    other_function(vec.data());//or &vec[0] pre C++11

std::vector 构造函数将两个指针作为开始和结束迭代器,并将其复制(并转换)到内部缓冲区,稍后使用data() 访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 2011-05-19
    • 2016-03-18
    • 2013-09-03
    • 2012-07-11
    相关资源
    最近更新 更多