我想知道为什么我一直收到错误并且无法返回数组;
另外,一旦sell_item函数实际工作并返回一个数组,我就会从主函数回显该数组。
感谢
#include <iostream>
#include <fstream>
using namespace std;
ifstream infile;
ofstream outfile;
int itemnum = 3333;
string itemName="Cooking Range";
int Qauntity=1;
int NumberOfItems=2;
int NumberOfFields=5;
double function_Sell_Item(int itemnum,string itemName, int Qauntity);
int main () {
function_Sell_Item(itemnum, itemName, Qauntity);
}
double function_Sell_Item(int itemnum,string itemName, int Qauntity) {
double arraylist[2][5];
for (int index =0; index < NumberOfItems; index++) {
for (int i=0; i < NumberOfFields; i++) {
arraylist[index][i]=0;
}
}
return arraylist;
}
//// functions ends
: ;
答案 0 :(得分:8)
您正在尝试返回一个在C ++中无法执行的数组。
你应该考虑像std::vector<double>
这样的东西,因为你可以回复它。
typedef std::vector<double> MyVec;
MyVec foo() {
MyVec v;
v.push_back(3.142);
v.push_back(2.718);
return v;
}
int main() {
MyVec z = foo();
for (int i = 0; i < z.size(); i++) {
std::cout << z[i] << "\n";
}
return 0;
}
答案 1 :(得分:1)
当你返回一个本地数组时,你的代码根本不起作用,在返回函数后,它的内存不再有效。您必须在堆上动态分配数组内存。
此外,您必须将函数的返回类型更改为double **
答案 2 :(得分:0)
你试图返回一个你不能在C ++中使用的双数组(二维)。 请改用Vector!