下面的代碼:數組作爲arguement傳遞到顯示垃圾的功能值
int *num_arr = number_to_array(num);
cout<<"\nNum aaray:"<<*(num_arr+1);
display(num_arr, digit_count);
的COUT語句這裏顯示正確的值,但顯示()不是。顯示器正在示出無用值用於顯示)
代碼(:
void display(int num_arr[],int dc)
{
cout<<"\n";
cout<<"\n"<<num_arr[0];
cout<<"\n"<<num_arr[1];
for(int i = (dc-1); i>=0; i--)
{
cout<<num_arr[i];
}
}
int* number_to_array(int num)
{
int i=0;
int num_arr[100]; // make dynamic array
while(num!=0)
{
num_arr[i] = num%10;
num = num/10;
i++;
}
return num_arr;
}
可能是什麼原因?
你可以發佈display()函數嗎? – Ermir
[C++函數返回指針]可能的重複(http://stackoverflow.com/questions/8969292/returning-pointer-from-a-function-in-c) – Mat