从双指针构建箭头双环
Construct an Arrow DoubleArray from double pointer
我有一个二维双阵列指针。我可以将其施放到u_int8_t
,将其获取到箭头池缓冲区的mutable_data()
,然后构造箭头Doublearray。但是,当我从数组的Value()
,raw_values()
获得值时,我无法获得正确的数字。有人请查看我的代码并帮助我:
double* generateDoubleArray() {
int totalColumns = 200;
int totalRows = 200;
std::random_device r;
std::default_random_engine e1(r());
std::normal_distribution<double> nor_dist(-1, 1);
double *A = static_cast<double *>(malloc(totalColumns * totalRows * sizeof(double *)));
for (int i = 0; i < totalRows; i++) {
for (int j = 0; j < totalColumns; j++) {
A[i*totalColumns + j] = sin(nor_dist(e1)) + exp(sin(nor_dist(e1)) + cos(nor_dist(e1)));
}
}
return A;
}
int main()
{
double* generatedDouble = generateDoubleArray();
uint8_t *ui_generatedDouble = (uint8_t*)generatedDouble;
arrow::MemoryPool* pool_;
pool_ = arrow::default_memory_pool();
auto data = std::make_shared<arrow::PoolBuffer>(pool_);
size_t length = 200 * 200;
const size_t data_nbytes = length * sizeof(double *);
data->Resize(data_nbytes);
*data->mutable_data() = *ui_generatedDouble;
auto out = std::make_shared<arrow::DoubleArray>(data_nbytes, data);
double test_value = out->Value(0); // The returned value is not correct
return 0;
}
谢谢
以下行不执行您的想法:
*data->mutable_data() = *ui_generatedDouble;
它仅复制数据的第一个字节。您想组成整个缓冲区:
std::memcpy(data->mutable_data(), ui_generatedDouble, data_nbytes);
相关文章:
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何在构建链接列表时调整头、尾指针
- 使用C对象指针构建PyObject*
- 有关为指向运行时确定的多个结构之一的指针构建类的建议
- 在编译时以增量方式构建变量指针的向量
- OpenCV使用像素指针构建图像
- 从双指针构建箭头双环
- 为什么在构建链表C++时必须指向指针
- 我是否正确构建了这些引用和指针函数?如果是,我该如何显式调用我的析构函数
- 为什么由指针和对象构建的局部变量显示不同的输出
- 确保仅构建智能指针
- PHPBREW 5.3.10 构建错误:取消引用指向不完整类型的指针
- 当我传递从字符串流构建的字符指针时,流打开(..)失败
- C++ 构建警告:取消引用类型双关指针将违反严格锯齿规则
- 使用 Rice 在 C++ 中构建 Ruby 扩展:如何将 Ruby 方法(回调)的指针传输到C++函数
- xcode 构建错误:从指针到较小类型"int"的语义问题丢失了信息
- Boost -在构建时关于解引用指针的警告
- 在c++中构建/合并字符数组指针
- 试图创建一个指向父节点的指针,同时构建二叉树
- new(size, value) Type[0]返回的指针是否合法,是否可以用来构建数组?