Инициализация полей в структуре - C (СИ)
Формулировка задачи:
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
using namespace std;
struct data{
int d,m,y;
};
struct man{
char *fio;
data dr;
char email[20];
char icq[20];
char **tel;
};
void main(){
int n=5,m=1,l=13;
man *bot=new man[n];
for(int i=0;i<n;i++){
bot[i].tel=new char*[m];
for(int j=0;j<m;j++)
bot[i].tel[j]=new char[l];
}
}
bot[0]={"Popov Dmitriy Stanislavovich",{18,7,84},"removed@mail.ru","123456789","0931234567"};
}
Пробывал так:
/*char temp[]="Popov Dmitriy Stanislavovich";
int r=strlen(temp)+1;
bot[0].fio=new char[r];
strcpy(bot[0].fio,temp);*/
Нехочет.Решение задачи: «Инициализация полей в структуре»
textual
Листинг программы
// first example
struct s{
char *name;
char *family;
char *otc;
int year;
};
struct s s1={"Kuzma","Prutkov","Ivanovich",1927};
struct s2[20];
// two example
s2[0].name="Kuzma";
s2[0].family="Prutkov";
s2[0].otc="Ivanovich";
s2[0].year=1927;
Объяснение кода листинга программы
В этом коде определен тип структуры s с четырьмя полями: name (строка), family (строка), otc (строка), year (целое число). Затем создается экземпляр этой структуры s1 и инициализируется значениями Kuzma, Prutkov, Ivanovich, 1927 соответственно.
Во втором примере создается массив структур s2[20], каждая структура инициализируется значениями Kuzma, Prutkov, Ivanovich, 1927.
Список действий:
- Объявление структуры s с полями name (строка), family (строка), otc (строка), year (целое число).
- Инициализация экземпляра структуры s1 значениями
Kuzma,Prutkov,Ivanovich, 1927. - Создание массива структур s2[20].
- Инициализация первого элемента массива s2 значениями
Kuzma,Prutkov,Ivanovich, 1927.