#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 12
typedef struct aluno {
char nome[ 40 ] ;
int idade;
} Aluno;
typedef struct lista {
size_t qnt;
Aluno dados[ MAX] ;
} Lista;
Lista* cria( ) {
Lista
* l
= malloc ( sizeof ( Lista
) ) ; if ( l != NULL)
l-> qnt = 0 ;
return l;
}
int insere( Lista * l, Aluno al) { //insere no inicio
if ( l == NULL || l-> qnt == MAX) return 0 ;
for ( int i = l-> qnt; i > 0 ; i-- ) l-> dados[ i] = l-> dados[ i - 1 ] ;
memcpy ( & l
-> dados
[ 0 ] , & al
, sizeof ( Aluno
) ) ; l-> qnt++;
return 1 ;
}
void liberar( Lista * l) {
}
void exibe( Lista * l) {
if ( l
-> qnt
== 0 ) printf ( "\n Lista esta vazia.\n \n " ) ; for ( int i = 0 ; i < l-> qnt; i++ ) {
printf ( "Aluno: %s" , l
-> dados
[ i
] .
nome ) ; printf ( ", de Idade: %d\n " , l
-> dados
[ i
] .
idade ) ; }
}
int main( ) {
Lista * l = cria( ) ;
Aluno al;
int opc;
do {
printf ( "\t Escolha uma Opcao\n " ) ; printf ( "1: Cadastrar Aluno\n " ) ; switch ( opc) {
case 0 :
break ;
case 1 : //inconsistência
insere( l, al) ;
break ;
case 2 :
exibe( l) ;
break ;
default :
break ;
}
} while ( opc != 0 ) ;
liberar( l) ;
}
//https://pt.stackoverflow.com/q/171059/101
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojZGVmaW5lIE1BWCAxMgoKdHlwZWRlZiBzdHJ1Y3QgYWx1bm8gewogICAgY2hhciBub21lWzQwXTsKICAgIGludCBpZGFkZTsKfSBBbHVubzsKCnR5cGVkZWYgc3RydWN0IGxpc3RhIHsKICAgIHNpemVfdCBxbnQ7CiAgICBBbHVubyBkYWRvc1tNQVhdOwp9IExpc3RhOwoKTGlzdGEqIGNyaWEoKSB7CiAgICBMaXN0YSAqbCA9IG1hbGxvYyhzaXplb2YoTGlzdGEpKTsKICAgIGlmIChsICE9IE5VTEwpCiAgICAgICAgbC0+cW50ID0gMDsKICAgICAgICByZXR1cm4gbDsKfQoKaW50IGluc2VyZShMaXN0YSAqbCwgQWx1bm8gYWwpIHsgLy9pbnNlcmUgbm8gaW5pY2lvCiAgICBpZiAobCA9PSBOVUxMIHx8IGwtPnFudCA9PSBNQVgpIHJldHVybiAwOwogICAgZm9yIChpbnQgIGkgPSBsLT5xbnQ7IGkgPiAwOyBpLS0pIGwtPmRhZG9zW2ldID0gbC0+ZGFkb3NbaSAtIDFdOwogICAgbWVtY3B5KCZsLT5kYWRvc1swXSwgJmFsLCBzaXplb2YoQWx1bm8pKTsKICAgIGwtPnFudCsrOwogICAgcmV0dXJuIDE7Cn0KCnZvaWQgbGliZXJhcihMaXN0YSAqbCkgewogICAgZnJlZShsKTsKfQoKdm9pZCBleGliZShMaXN0YSAqbCkgewogICAgaWYgKGwtPnFudCA9PSAwKSBwcmludGYoIlxuTGlzdGEgZXN0YSB2YXppYS5cblxuIik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGwtPnFudDsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCJBbHVubzogJXMiLCBsLT5kYWRvc1tpXS5ub21lKTsKICAgICAgICBwcmludGYoIiwgZGUgSWRhZGU6ICVkXG4iLCBsLT5kYWRvc1tpXS5pZGFkZSk7CiAgICB9Cn0KCmludCBtYWluKCkgewogICAgTGlzdGEgKmwgPSBjcmlhKCk7CiAgICBBbHVubyBhbDsKICAgIGludCBvcGM7CiAgICBkbyB7CiAgICAgICAgcHJpbnRmKCJcdEVzY29saGEgdW1hIE9wY2FvXG4iKTsKICAgICAgICBwcmludGYoIk86IHNhaXJcbiIpOwogICAgICAgIHByaW50ZigiMTogQ2FkYXN0cmFyIEFsdW5vXG4iKTsKICAgICAgICBwcmludGYoIjI6IEV4aWJpciBBbHVub3NcbiIpOwogICAgICAgIHByaW50ZigiT3BjYW86ICIpOwogICAgICAgIHNjYW5mKCIlZCIsICZvcGMpOwogICAgICAgIHN3aXRjaChvcGMpIHsKICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTogLy9pbmNvbnNpc3TDqm5jaWEKICAgICAgICAgICAgcHJpbnRmKCJcbkRpZ2l0ZSBvIG5vbWU6ICIpOwogICAgICAgICAgICBzY2FuZigiJXMiLCBhbC5ub21lKTsKICAgICAgICAgICAgcHJpbnRmKCJEaWdpdGUgYSBpZGFkZTogIik7CiAgICAgICAgICAgIHNjYW5mKCIlZCIsICZhbC5pZGFkZSk7CiAgICAgICAgICAgIGluc2VyZShsLCBhbCk7CiAgICAgICAgICAgIHN5c3RlbSgiY2xzIik7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgZXhpYmUobCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHByaW50ZigiT3BjYW8gSW52YWxpZGEuXG4iKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfSB3aGlsZSAob3BjICE9IDApOwogICAgbGliZXJhcihsKTsKfQoKLy9odHRwczovL3B0LnN0YWNrb3ZlcmZsb3cuY29tL3EvMTcxMDU5LzEwMQ==
compilation info
prog.c: In function ‘cria’:
prog.c:18:5: error: this ‘if’ clause does not guard... [-Werror=misleading-indentation]
if (l != NULL)
^~
prog.c:20:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return l;
^~~~~~
cc1: all warnings being treated as errors
stdout