Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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++比较新,今天我们有一个任务,我们需要创建一个函数,它将空数组的大小为25,并用数字1到25填充。这种语言甚至从来没有在课堂上教过,他的例子充满了错误,无法运行。以下是我目前掌握的情况: #include <iostream> using namespace std; int add25(int arr[], int size); int main() { const int x = 25; int myArray[x]; add25(myArray, 25); int i; for (i = 0; i < 25; i++) { cout << myArray[i] << endl; } } int add25(int arr[], int size) { int i; for (i = 0; i < size; i++) { arr[i] = i + 1; } } #包括 使用名称空间std; int add25(int arr[],int size); int main() { 常数int x=25; int myArray[x]; add25(myArray,25); int i; 对于(i=0;i_C++_Arrays - Fatal编程技术网

如何返回C+中的整数数组+; 我对C++比较新,今天我们有一个任务,我们需要创建一个函数,它将空数组的大小为25,并用数字1到25填充。这种语言甚至从来没有在课堂上教过,他的例子充满了错误,无法运行。以下是我目前掌握的情况: #include <iostream> using namespace std; int add25(int arr[], int size); int main() { const int x = 25; int myArray[x]; add25(myArray, 25); int i; for (i = 0; i < 25; i++) { cout << myArray[i] << endl; } } int add25(int arr[], int size) { int i; for (i = 0; i < size; i++) { arr[i] = i + 1; } } #包括 使用名称空间std; int add25(int arr[],int size); int main() { 常数int x=25; int myArray[x]; add25(myArray,25); int i; 对于(i=0;i

如何返回C+中的整数数组+; 我对C++比较新,今天我们有一个任务,我们需要创建一个函数,它将空数组的大小为25,并用数字1到25填充。这种语言甚至从来没有在课堂上教过,他的例子充满了错误,无法运行。以下是我目前掌握的情况: #include <iostream> using namespace std; int add25(int arr[], int size); int main() { const int x = 25; int myArray[x]; add25(myArray, 25); int i; for (i = 0; i < 25; i++) { cout << myArray[i] << endl; } } int add25(int arr[], int size) { int i; for (i = 0; i < size; i++) { arr[i] = i + 1; } } #包括 使用名称空间std; int add25(int arr[],int size); int main() { 常数int x=25; int myArray[x]; add25(myArray,25); int i; 对于(i=0;i,c++,arrays,C++,Arrays,您不必从add25()返回任何内容,因为它已经在您给它一个指针的数组上运行。请注意int foo[]与参数列表中的int*foo相同 他的例子错误百出,行不通 此程序中唯一的错误是add25()的返回类型应该是void,而不是int。在声明和定义中更改该类型,代码将编译并运行。您不必从add25()返回任何内容因为它已经在你给它一个指针的数组上运行。请不要认为int foo[]与参数列表中的int*foo相同 他的例子错误百出,行不通 此程序中唯一的错误是add25()的返回类型应该是void而

您不必从
add25()
返回任何内容,因为它已经在您给它一个指针的数组上运行。请注意
int foo[]
与参数列表中的
int*foo
相同

他的例子错误百出,行不通


此程序中唯一的错误是
add25()
的返回类型应该是
void
,而不是
int
。在声明和定义中更改该类型,代码将编译并运行。

您不必从
add25()返回任何内容
因为它已经在你给它一个指针的数组上运行。请不要认为
int foo[]
与参数列表中的
int*foo
相同

他的例子错误百出,行不通

此程序中唯一的错误是
add25()
的返回类型应该是
void
而不是
int
。在声明和定义中更改该类型,代码将编译并运行

显然,这只返回数组的第一个数字(1),其余部分为空

这不是程序所做的

程序在数组索引[0…size]上迭代并分配所有这些数组元素

然后函数结束时不返回任何值。但是函数被声明为返回
int
。不从声明为返回非空值的函数返回值的行为是未定义的。如果幸运的话,编译器也会注意到:


如何返回整数数组

不可能从C++中的函数返回数组。< /P> 但是,可以返回类实例,并且类可以包含数组。但是,类中包含的数组的大小必须在编译时已知。标准库提供了一个类模板,专门用于包装数组。它被称为

std::array
。您可以返回
std::array
l例如:

std::array<int, 25> add25() {
    std::array<int, 25> arr{};
    // process arr in a manner of your choosing
    return arr; // return a copy of arr
}
std::array add25(){
std::数组arr{};
//以您选择的方式处理arr
return arr;//返回arr的副本
}
为了避免数组大小不变的限制,可以使用动态分配数组的
std::vector


返回数组的另一种方法是简单地让函数的调用方创建数组,并且只修改函数中的数组

事实上,这就是示例程序所做的,如果我的回答中前面提到的bug已经修复的话

显然,这只返回数组的第一个数字(1),其余部分为空

这不是程序所做的

程序在数组索引[0…size]上迭代并分配所有这些数组元素

然后函数结束时不返回任何值。但是函数被声明为返回
int
。不从声明为返回非空值的函数返回值的行为是未定义的。如果幸运的话,编译器也会注意到:


如何返回整数数组

不可能从C++中的函数返回数组。< /P> 但是,可以返回类实例,并且类可以包含数组。但是,类中包含的数组的大小必须在编译时已知。标准库提供了一个类模板,专门用于包装数组。它被称为

std::array
。您可以返回
std::array
l例如:

std::array<int, 25> add25() {
    std::array<int, 25> arr{};
    // process arr in a manner of your choosing
    return arr; // return a copy of arr
}
std::array add25(){
std::数组arr{};
//以您选择的方式处理arr
return arr;//返回arr的副本
}
为了避免数组大小不变的限制,可以使用动态分配数组的
std::vector


返回数组的另一种方法是简单地让函数的调用方创建数组,并且只修改函数中的数组


事实上,这就是示例程序所做的,只要我前面的回答中提到的bug得到修复。

没有什么“明显的”事实上,尽管这个函数被声明为返回<代码> int <代码>,但是它不返回任何东西。对于这个编译器,你的C++编译器必须大声地对你大声喊叫。请不要忽略编译器的消息,即使它勉强同意编译你的代码。编译器会报告错误和警告。原因。它们不应被忽略。@SamVarshavchik该标准不要求在这种情况下发出警告。例如,默认情况下,g++v7及更高版本不会发出警告。@M.M as“否则,从函数结尾流出而不是主函数会导致未定义的行为。”他们当然应该,即使它不是严格要求的。@剑鱼可能他们应该警告这个案例,但事实是许多编译器不缺省。我响应的说法是“你的C++编译器必须大声地对你吼叫”,在没有忽略编译信息的OP中,没有任何根据的指控被指责。显然,这是从函数返回的。事实上,尽管这个函数被声明为返回<代码> int <代码>,但是它不返回任何东西。对于这个编译器,你的C++编译器必须大声地对你大声喊叫。请不要忽略编译器的消息,即使它勉强同意编译你的。