tenho duas structs, LIST e NO. lista duplamente encadeada.
//insiro/crio 100.000 nos.
struct no{char*nome;char sexo;float nota;float media;int id;struct no *next,*prev;};structlist{longint size_list;struct no *begin,*end;};typedefstruct no NO;typedefstructlist LIST;for(int y =0; y <100000; y++)
inserir_inicio(*list);voidCreateNo(NO **no){*no =(NO*)calloc(1,sizeof(NO));if(*no){(*no)->nome ="cicero";(*no)->sexo ='M';(*no)->nota =0.0;(*no)->media =1;(*no)->id++;(*no)->next = NULL;(*no)->prev = NULL;
is_Ok =true;}else{
printf("ERRO: Ao alocar memoria em 'void CreateNo(NO **no)'\n");
is_Ok =false;return;}}void inserir_inicio(LIST *list){
NO *no;CreateNo(&no);if(is_Ok){
no->next =list->begin;list->begin = no;list->size_list++;}}// destroy os nosvoidDestoyList(LIST **list){if((*list)->begin == NULL){
free(*list);
printf("Lista vazia!\n\n");}else{
NO *p =(*list)->begin,*tmp = NULL;while(p != NULL){
tmp = p;
p = p->next;/*tmp->nome = "0";
tmp->sexo = '\0';
tmp->id = 0;
tmp->media = 0;*/
free(tmp);}
free(p);(*list= NULL);}}
o problema é o seguinte:
quando inicio o aplicativo ele começão com 512kb, quando criando 100.000 na memoria heap, aumenta para mais ou menos uns 7,8mb, bom ate aqui tudo oks
mas quando delete este nos com o free() esperava eu q retornasse para os mesmo 512kb inicias do aplicativo, mas isso não acontece, ele retorna para 1,3mb.
minha pergunta é: porque não deleta tudo, já setei zeros e para todos os membros da struct no mas mesmo assim não deleta tudo.
Se alguém poder meda da uma dica. OBS: não quero código pronto eu quero apenas dicas se possível bem explicada porque sou meio novato em c kkk.
Pergunta
cgm2k21
Boa noite!
Bom preciso de uma dica/ajuda em uma problema...
tenho duas structs, LIST e NO. lista duplamente encadeada.
//insiro/crio 100.000 nos.
o problema é o seguinte:
quando inicio o aplicativo ele começão com 512kb, quando criando 100.000 na memoria heap, aumenta para mais ou menos uns 7,8mb, bom ate aqui tudo oks
mas quando delete este nos com o free() esperava eu q retornasse para os mesmo 512kb inicias do aplicativo, mas isso não acontece, ele retorna para 1,3mb.
minha pergunta é: porque não deleta tudo, já setei zeros e para todos os membros da struct no mas mesmo assim não deleta tudo.
Se alguém poder meda da uma dica. OBS: não quero código pronto eu quero apenas dicas se possível bem explicada porque sou meio novato em c kkk.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.