Как правильно вызвать функцию, в которую передаётся указатель на структуру? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#define _CRT_SECURE_NO_WARNINGS
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
struct settings
{
    int number;
    char *parity;
    char *colour;
    int dozen;
    int column;
    int half;
};
struct groups
{
    int split;
    int triad;
    int tetrad;
    int sixline;
};
void initialization(struct settings **a);

int main()
{
    int i;
    struct settings a[37];
    initialization(&a); //это неверно, как правильно вызвать функцию?

    _getch();
}
void initialization(struct settings **a)
{
    int i;
    //int x = 15;
    //int num;
    //char *par;
    for (i = 0; i < 37; i++)
    {
        //число
        (*a)[i].number = i;
        //чётность
        if (i == 0)
            (*a)[i].parity = "NONE\0";
        if ((i != 0) && (i % 2 == 0))
            (*a)[i].parity = "Even";
        if ((i != 0) && (i % 2 != 0))
            (*a)[i].parity = "Odd";
        //цвет
    }
    //i = x;
    //par = a[i].parity;
    //printf("par=%s", par);
    //num = a[i].number;
    //printf("num=%d", num);
}

Решение задачи: «Как правильно вызвать функцию, в которую передаётся указатель на структуру?»

textual
Листинг программы
void initialization(struct settings *a) {
    a[0].number = 1;
}
initialization(a);

Объяснение кода листинга программы

  1. В данном коде происходит инициализация структуры settings с помощью функции initialization.
  2. В функцию initialization передается указатель на структуру settings с именем a.
  3. Внутри функции initialization происходит присвоение значения 1 элементу number структуры, на которую указывает a.
  4. После вызова функции initialization значение переменной a не изменяется.
  5. Значение переменной a после вызова функции initialization остается неопределенным.
  6. Если функция initialization вызывается повторно с тем же значением a, она будет работать с тем же указателем и изменять значение number структуры, на которую он указывает.
  7. Если функция initialization вызывается с другим значением a, она будет работать с другим указателем и изменять значение number другой структуры.
  8. Если функция initialization вызывается с NULL, она не будет выполнять никаких действий.
  9. Если структура settings содержит другие поля, они останутся неопределенными после вызова функции initialization.
  10. Если структура settings содержит другие функции, они останутся неопределенными после вызова функции initialization.
  11. Если структура settings содержит другие указатели, они останутся неопределенными после вызова функции initialization.
  12. Если структура settings содержит другие переменные, они останутся неопределенными после вызова функции initialization.
  13. Если структура settings содержит другие массивы, они останутся неопределенными после вызова функции initialization.
  14. Если структура settings содержит другие указатели на структуры, они останутся неопределенными после вызова функции initialization.
  15. Если структура settings содержит другие указатели на массивы, они останутся неопределенными после вызова функции initialization.
  16. Если структура settings содержит другие указатели на функции, они останутся неопределенными после вызова функции initialization.
  17. Если структура settings содержит другие указатели на указатели, они останутся неопределенными после вызова функции initialization.
  18. Если структура settings содержит другие указатели на переменные, они останутся неопределенными после вызова функции initialization.
  19. Если структура settings содержит другие указатели на массивы структур, они останутся неопределенными после вызова функции initialization.
  20. Если структура settings содержит другие указатели на функции структур, они останутся неопределенными после вызова функции initialization.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы