【发布时间】:2012-10-11 04:05:25
【问题描述】:
我对 C++ 还很陌生,并且一直在避免使用指针。根据我在网上阅读的内容,我无法返回数组,但可以返回指向它的指针。我做了一个小代码来测试它,想知道这是否是正常/正确的方法:
#include <iostream>
using namespace std;
int* test (int in[5]) {
int* out = in;
return out;
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int* pArr = test(arr);
for (int i = 0; i < 5; i++) cout<<pArr[i]<<endl;
cout<<endl;
return 0;
}
编辑:这似乎不好。我应该如何重写它?
int* test (int a[5], int b[5]) {
int c[5];
for (int i = 0; i < 5; i++) c[i] = a[i]+b[i];
int* out = c;
return out;
}
【问题讨论】:
-
请查看
std::array。 -
它似乎有效,我只是想知道它是否有什么问题。我听说不正确地使用指针会很危险。
-
数组可以毫无问题地作为指针传递,但不能使用指针分配给数组。
-
在编码业务中,如果有什么可行的,那就对了。
-
只是不要尝试返回指向本地堆栈数组的指针。像
int* funct() { int arr[5]; return arr; }这样的东西会很糟糕。
标签: c++ arrays function pointers