这是一个只打印单个值的代码如果我想打印整个数组,它就不能正常工作。
#include <iostream>
using namespace std;
int *firstDay(int fd)
{
int d[35] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int setday = 1;
int *pnd;
pnd = d;
int limit = 35 - fd;
for(fd;fd<limit;fd++)
{
d[fd] = setday;
setday++;
}
return pnd;
}
void display(int *d)
{
cout<<d[1]<<endl; // value 0
cout<<d[2]<<endl; // value 1
cout<<d[3]; // value 2
}
int main()
{
display(firstDay(2));
return 0;
}
如果我只编写一个cout
,那么它可以工作并打印正确的值如果我使用多个cout
那么它就无法打印正确的值。
答案 0 :(得分:0)
firstDay
返回指向函数内声明的数组的指针;函数返回后,此指针无效,您尝试取消引用它会导致未定义的行为。