Будет ли приведенная программа сохранять данные в структуре? - C (СИ)
Формулировка задачи:
Если я запущу программу и внесу какие-либо изменения в структуру (например, DATA[0].year=1769), то при следующем запуске в программе сохранится мое изменение (т.е. DATA[0].year будет по-прежнему равна 1769) или все снесется?
Массивы структур пытаюсь передать в функцию при помощи указателей. В функции изменяю элементы структур. Но программа их не запоминает (или, возможно, переписывает их заново). Может быть, дело в том, что функция не возвращает изменения структур обратно?
В чем именно моя ошибка? Как заставить структуру запоминать значения, внесенные в функции?
Структуры
Кусок функции
Кусь от main'а
struct data {------}; struct cars {------};
void registration(struct data *DATA,struct cars *CARS,int N) // регистрация (0) { int i=0, p=0; while((p==0)&&(i!=N)) { ....... printf("\nYEAR"); printf("\n>:"); scanf("%d",&(*DATA).year); ........ printf("\nbrand of car"); printf("\n>:"); scanf("%s",&(*CARS).brand); ........ i++; } }
int main() { int N=20; struct data DATA[N]; struct cars CARS[N]; registration(DATA,CARS,N); }
Решение задачи: «Будет ли приведенная программа сохранять данные в структуре?»
textual
Листинг программы
scanf("%d",&(*DATA).year);
Объяснение кода листинга программы
В данном коде происходит следующее:
- Вводится переменная
DATA
типа указатель на структуру. - Происходит попытка чтения значения года из стандартного ввода с помощью функции
scanf
. - Введенное значение сохраняется в поле
year
структуры, на которую указывает переменнаяDATA
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д