/*********************************************************** * Created: Wed 14 Nov 2018 10:09:45 AM -02 * * Author: Carla N. Lintzmayer, carla.negri@ufabc.edu.br * ***********************************************************/ #include #include #include typedef int t_RA; typedef char string; struct Aluno { t_RA ra; int telefone; string nome[40]; }; struct BaseAlunos { struct Aluno *alunos; int capacidade; int armazenados; }; typedef struct Aluno t_Aluno; typedef struct BaseAlunos t_BaseAlunos; void insere(struct BaseAlunos *base, t_Aluno alunonovo) { if (base->capacidade > base->armazenados) { base->alunos[base->armazenados] = alunonovo; base->armazenados++; } } void imprimir(struct BaseAlunos base) { int i; printf("Imprimindo base: (%d %d)\n", base.armazenados, base.capacidade); for (i = 0; i < base.armazenados; i++) { printf("%d - %s\n", base.alunos[i].ra, base.alunos[i].nome); } } int main() { struct BaseAlunos base; struct Aluno aluno; base.capacidade = 10; base.armazenados = 0; base.alunos = malloc(base.capacidade * sizeof(struct Aluno)); imprimir(base); aluno.ra = 12345; aluno.telefone = 5555; strcpy(aluno.nome, "carla"); insere(&base, aluno); imprimir(base); return 0; }