Очень новичок в программировании, поэтому, пожалуйста, несите меня, Я пытаюсь создать код, который подскажет пользователю ввести размер для массива, а затем с помощью указателей вызовите функцию, чтобы получить все четные числа вверх введенного целое число, я не знаю, что делать здесь Вот то, что я до сих пор:Использование указателей и ссылочных функций
#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
Объявить 'int * getEvenNumbers (int * even);' before 'main()', чтобы заставить компилятор указать одну ошибку - вы не передаете 'even' функции. Внутри функции вы возвращаете первое четное значение 'point' (которое равно 2) и никогда не устанавливаете ничего в массиве. И вы возвращаете указатель на локальную переменную, которая является строгой no-no; это приводит к неопределенному поведению, когда он используется вызывающим кодом. –
Ну, ваша задача - заполнить массив 'even' цифрами и обратить внимание на то, что этот массив не переполняется. То, что вы делаете, это вернуть указатель на автоматическую переменную, которая является незаконной. Кроме того, как ваша функция знает верхний предел? Как узнать максимальный размер массива? –