Записать рандомные имена в структуру: Segmentation fault - C (СИ)

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

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

Нужно записать рандомные имена в структуру,но дает Segmentation fault.Что не так?
Листинг программы
  1. struct Client
  2. {
  3. char name[10];
  4. char surname[30];
  5. char fatherName[30];
  6. char adress[30];
  7. char phone_number[30];
  8. char thing[30];
  9. };
  10. char names[5][10]={"Ваня","Дима","Саня","Вася"};
  11. void initialize(struct Client *clients)
  12. {int i,t;
  13. for ( i = 0; i < 3; ++i)
  14. {
  15. t=rand()%3;
  16. clients->name[10] = names[i][10];
  17. }
  18. }

Решение задачи: «Записать рандомные имена в структуру: Segmentation fault»

textual
Листинг программы
  1. struct Client
  2. {
  3.     char *name;// здесь везде указатели
  4.     char *surname;
  5.     char *fatherName;
  6.     char *adress;
  7.     char *phone_number;
  8.     char *thing;
  9. };
  10. char *names[] = { "Ваня","Дима","Саня","Вася" };//мас. указ.
  11. void initialize(struct Client *clients)
  12. {
  13.     int i, t;
  14.     for (i = 0; i < 4; ++i)//от нуля до трех включительно
  15.     {
  16.         t = rand() % 4;//и здесь, от нуля до трех включительно
  17.         clients->name = names[t]; // здесь t
  18.     }
  19. }

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

В данном коде объявлена структура Client, которая содержит в себе указатели на строки. Также объявлен массив указателей на строки names с четырьмя элементами. Функция initialize принимает указатель на структуру Client и инициализирует поля этой структуры случайным именем из массива names. В функции используется цикл for с диапазоном от 0 до 3, который выполняется четыре раза. Во время каждого прохода цикла, в переменной t генерируется случайное число от 0 до 3 с помощью функции rand(). Затем, указатель на имя в текущем клиенте (поле name) присваивается значению names[t]. Таким образом, каждое поле name в структуре Client будет случайно инициализировано одним из четырех возможных значений.

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


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

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

10   голосов , оценка 4.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут