0
我想從函數返回處理中獲取地址後打印指針值,但是當我嘗試打印1時,程序很好... 但是當我嘗試使用循環,事情發生..如何在C++中使用循環打印指針
繼承人我的代碼:
int *fibo(int input){
int a=0,b=0,fib=1;
int arrfibo[input];
int *arrfib;
for(int i=0;i<input;i++){
a = b;
b = fib;
arrfibo[i] = fib;
fib = a + b;
}
arrfib = arrfibo;
cout << arrfib << endl;
return arrfib;
}
main(){
int inp;
cout << "Enter number of fibonancci = ";
cin >> inp;
int *arr;
arr = fibo(inp);
for(int i=0;i<inp;i++){
cout << *(arr + i) << " ";
} // something wrong here the result is (1 1 4462800 4663360 0)
}
感謝,:)
你'返回一個局部變量地址。未定義的行爲超出範圍時。 –
也許您正在訪問未正確分配的內存位置,即包含垃圾值。 –
VLA不是標準的C++。您應該關閉gcc擴展以獲得更多可移植的代碼。 – StoryTeller