C 在将数组引用分配给struct时麻烦
C++ trouble with assigning array reference to struct
我很难获得一些代码进行编译。问题似乎是将数组引用到结构的元素。这是下面的代码,以及错误消息。
所以我有一个看起来像这样的结构
struct numpyFormatterData{
double* pointerToNumpyData;
unsigned long numberOfDataRows;
unsigned long numberOfDataColumns;
std::string delimitedStringOfColumnNames;
};
然后我有一个生成随机50x10阵列的函数。
double generateRandomArray(double lower_, double upper_)
{
int row = 50;
int columns = 10;
double arr[rows][columns];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
arr[i][j] = std::uniform_real_distribution<double>(lower_, upper_)(gen);
}
}
return arr;
}
在我的测试案例中,我有以下代码引起了问题。我正在使用Catch
测试框架。
TEST_CASE( "Test construction of NumpyDataRequest Class", "[NumpyDataRequest]" ) {
SECTION( "Test factory method for creating NumpyDataRequest" ) {
double testDataArray = generateRandomArray(0.0, 2.0);
numpyFormatterData testNumpyRequest;
testNumpyRequest.numberOfDataRows = 50;
testNumpyRequest.numberOfDataColumns = 10;
testNumpyRequest.delimitedStringOfColumnNames;
testNumpyRequest.pointerToNumpyData = &testDataArray; //PROBLEM HERE
std::unique_ptr<NumpyDataRequest> testingDataRequest = NumpyDataRequest::setDataForRequest(testNumpyRequest);
numpyFormatterData checkDataRequest = testingDataRequest->getRequestData();
REQUIRE(checkDataRequest.numberOfDataColumns == 10);
}
}
我收到的错误消息是:
undefined reference to `generateRandomArray(double, double)'
collect2: error: ld returned 1 exit status
我知道我试图错误地将引用分配给testDataArray
。我已经尝试了多种不同的方法来做到这一点,但是没有一个奏效。有任何建议吗?
如果您要寻找的是对数组的引用,则将double generateRandomArray(...)
的返回类型更改为 double* generateRandomArray(...)
,然后将return &result[0][0];
的引用返回,最后将double testDataArray
更改为double *testDataArray
。
编辑:我只是注意到您的数组已分配在堆栈上,这在此示例中不是您想要的。考虑使用堆或vector
。
相关文章:
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- C++Union/Struct位域的实现和可移植性
- 如何在c++中定义以struct为数据成员的类中的构造函数
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- struct.error:解压缩 C++ 结构时,解包需要 288 字节的缓冲区
- 我已经阅读了很多关于 2d 数组的信息,但我在作业中使用它时遇到了麻烦
- 查找奇数平方和时遇到麻烦
- 错误:"Left of getValue must have class/struct/union"
- 在 SVM-Struct 中未定义对 sqrt 的引用(已使用 -lm)
- 数据类型"struct seq<0, 1, 2>{}"含义是什么?
- 附加使用 Struct 作为"multikey"并将 std::vector 用作映射值的映射
- QML/C++/QObject Struct Copy
- 如何在 cpp 中解压缩数字,如果它们是使用 struct.pack(fmt, v1, v2, ..) 打包在 pyth
- 将双倍转换为 LPARAM 的麻烦
- 麻烦得到提升::记录器编译
- Msgpack能否提供更好的性能和与Python的struct.pack()相同的功能?
- 翻转 ppm 图像C++麻烦
- C 在将数组引用分配给struct时麻烦
- struct _stack*和Digit :: struct_stack*中的一些麻烦