Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C++;? 在C++中,我想添加两个50位数字。我使用一个数组来保存每个。这意味着我要添加两个数组。我的问题是,我想在名为AddNum()的函数中执行此操作 然后将结果传递给另一个名为WriteNum的函数进行打印,我不知道如何将一个函数返回的数组传递给另一个函数。 希望我的问题足够清楚 thanx all_C++ - Fatal编程技术网

如何在C++;? 在C++中,我想添加两个50位数字。我使用一个数组来保存每个。这意味着我要添加两个数组。我的问题是,我想在名为AddNum()的函数中执行此操作 然后将结果传递给另一个名为WriteNum的函数进行打印,我不知道如何将一个函数返回的数组传递给另一个函数。 希望我的问题足够清楚 thanx all

如何在C++;? 在C++中,我想添加两个50位数字。我使用一个数组来保存每个。这意味着我要添加两个数组。我的问题是,我想在名为AddNum()的函数中执行此操作 然后将结果传递给另一个名为WriteNum的函数进行打印,我不知道如何将一个函数返回的数组传递给另一个函数。 希望我的问题足够清楚 thanx all,c++,C++,不使用数组。在你的课本或帮助系统中查找C++ >强> STD::vector 类,并使用它。这将使您的生活更加轻松。不要从加法函数返回数组,而是让它返回void并通过引用或指针传递数组以存储结果。然后将该数组传递给函数进行打印。只是为了澄清sharptooth的答案:如果要返回一个新数组,必须在函数中分配它,其他人必须释放它。这是可以做到的,但您必须始终记住在调用函数后释放结果。正如Neil Butterworth所指出的:std::vector可以帮助您解决这个问题。如果我做对了,并且这是您想

不使用数组。在你的课本或帮助系统中查找C++ >强> STD::vector 类,并使用它。这将使您的生活更加轻松。

不要从加法函数返回数组,而是让它返回void并通过引用或指针传递数组以存储结果。然后将该数组传递给函数进行打印。

只是为了澄清sharptooth的答案:如果要返回一个新数组,必须在函数中分配它,其他人必须释放它。这是可以做到的,但您必须始终记住在调用函数后释放结果。正如Neil Butterworth所指出的:std::vector可以帮助您解决这个问题。

如果我做对了,并且这是您想要做的,那么您的函数应该有这样的签名:

int* addNumbers(int* array1, int* array2)
{
....
}

你可以这样称呼它:

//declare and init array1 and array2
//...
writeNumbers(addNumbers(array1, array2));

我希望我正确理解了您的问题。

首先,如果要添加大量数字,将它们保存在阵列中会很麻烦,而且需要cpu电源和内存。如果可以,请使用(优化和快速库)

如果必须使用数组,那么使用c++的向量而不是c的数组,这将最大限度地减少出错的机会并使其更简单

要向函数发送向量,通常需要使用int、string等,即

vector<int> number1;
vector<int> number2;

addnum(number1, number2);
然后像往常一样对a和b执行正常操作

要让addnum返回向量,需要将addnum的定义更改为

vector<int> addnum(vector<int>& a, vector>int>& b)
vector addnum(vector&a,vector>int>&b)
当然,还有一个return语句,其中包含要返回的向量


如果选择通过引用发送值,这意味着如果在addnum函数中更改它们,则在主类中声明的number1和number2向量也将更改。这基本上意味着,如果您将结果保存在addnum函数的变量
a
中,那么
number1
向量中也会有相同的值,这意味着您不需要函数返回新的向量,而是可以重用现有的向量。

这又是一个家庭作业问题吗?:-)Google it:添加大数字c++你考虑过使用Egeng3库吗?但更正确的方法是传递第三个数组作为引用,IMO。你需要传递数组长度。
void addnum(vector<int> a, vector<int> b)
void addnum(vector<int>& a, vector>int>& b)
vector<int> addnum(vector<int>& a, vector>int>& b)