【发布时间】:2015-12-12 21:52:36
【问题描述】:
我正在尝试创建一个名为getSortedRanks 的函数,它返回一个数组。我从这个问题Return array in a function 复制了返回数组的格式,但数组没有正确返回。
#include <stdlib.h>
#include <stdio.h>
#define familyMembers 4
int *getSortedRanks()
{
int rankedMembers[familyMembers] = {3,4,2,1};
return rankedMembers;
}
int main()
{
int *sortedRanks = getSortedRanks();
//print the returned array
for(int i = 0; i < familyMembers; i ++)
{
cout << "ranked member is " << sortedRanks[i] << endl;
}
return 0;
}
当我运行它时,输出是:
ranked member is 3
ranked member is 0
ranked member is 0
ranked member is 2686744
数组sortedRanks 的第一个元素始终正确,但其他元素不正确。如何更正数组的返回方式?
【问题讨论】:
-
不要返回指向函数堆栈上的东西的指针。
-
你为什么使用宏而不是静态整数?
-
@Brian 宁可
const
标签: c++ arrays function pointers