編程很新,所以請耐心等待, 我想創建一個代碼,提示用戶輸入一個數組的大小,然後使用指針調用函數來獲取所有偶數所輸入的整數,我不知道該怎麼在這裏做的,是我到目前爲止有:使用指針和參考函數
#include<stdio.h>
#define SIZE 100
int *getEvenNumbers();
main()
{
int *ptr,N;
printf("Please enter an integer: ");
scanf("%d", &N);
SIZE=N;
int even[SIZE];
ptr=getEvenNumbers();
printf("%d",*ptr);
}
int *getEvenNumbers(int *even)
{
int point=0;
for(point=1;point<=SIZE;point++)
if(point%2==0)
//point = 12;
return (&point);
}
返回一個指向局部變量的指針是未定義的行爲。 – EOF 2014-11-21 17:52:48
在main()之前聲明'int * getEvenNumbers(int * even);'讓編譯器指出一個錯誤 - 您不會將'even'傳遞給函數。在函數內部,您返回'point'的第一個偶數值(即2),並且從不在數組中設置任何值。並且你返回一個指向局部變量的指針,這是一個嚴格的禁止;它會在調用代碼使用時導致未定義的行爲。 – 2014-11-21 17:53:05
那麼,你的任務是用數字填充'even'數組,並注意這個數組不會溢出。你所做的就是返回一個指向自動變量的指針,這是非法的。另外,你的函數如何知道上限?它如何知道陣列的最大尺寸? – 2014-11-21 17:53:11