c++类型转换
c++ type conversion
我有一个基于C代码的应用程序,如下所示:
void MyFunction(short count, double (*points)[2])
我用以下参数类型调用这个函数:
MyFunction(count, poly_pts);
short count
double *poly_pts
编译错误:
cannot convert parameter 2 from 'double *' to 'double (*)[2]'
我必须按照旧代码的相同方式传递。c代码不给出任何错误,但c++编译器给出。
有没有人有任何想法如何转换双指针到二维双指针?
函数需要一个指向2个double
的数组的指针,你只给它一个指针。
这样写:
short count;
double points[2];
MyFunction(count, &points);
double (*points)[2]
是指向包含两个元素的数组的指针。传递给函数的实际上只是一个指向double的指针。如果你想让调用工作,你必须有一个地址到一个数组的2双精度。像这样:
double array[2];
myFun(&array);
将函数签名更改为double*
(可能还有另一个类型为size_t
的参数来表示大小)或将适当的值传递给原始函数。注意,数组的动态分配只返回一个指针,而不是一个真正的数组。
相关文章:
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++中的双指针类型转换
- 逐位操作的隐式类型转换
- 模板中的类型转换
- 在 C++(和 C)中进行类型转换时明显不一致
- 字符类型转换不兼容
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- C++:用户定义的显式类型转换函数错误
- 将类指针类型转换为键时出错
- 通过引用传递参数时C++类型转换
- 在 C++ 中将一个模板类型的对象类型转换为另一个模板类型
- C++显式类型转换(C 样式强制转换)的强制表示法和static_cast的多种解释
- C++无效的函数类型转换
- 在将派生类指针类型转换为派生类指针后,从基类指针调用派生类函数
- 如何将Windows产品类型转换为名称?
- 通过构造函数方法输出的类到类类型转换是 5500 为什么不是 5555
- 事件系统:使用类型转换或联合进行继承
- 如何在参数中定义隐式类型转换的构造函数?
- 类模板实例化中的类型转换