jorge618 Posted December 31, 2016 at 03:33 PM Report Share #601624 Posted December 31, 2016 at 03:33 PM void listar_data(bd * bdv) { //Listar por data char dn[4]; int i = 0, a = 0, n = 0; char dia_ins[2]; char mes_ins[2]; char dia_aux[2], mes_aux[2]; while (i != 3) { printf("1-Listar por Data de Nascimento (Dia/Mes)\n2-Listar por Mes de nascimento\n3-Voltar ao menu anterior\n"); scanf("%d", &i); if (i == 3) { return 0; } if (i == 1) { printf("Introduza o dia(com 2 digitos)\n"); scanf("%s", &dia_ins); printf("Introduza o mes(com 2 digitos)\n"); scanf("%s", &mes_ins); //printf("%s , %s, %s", atoi(data_ins)); for (n = 0; n < bdv->npessoas; n++) { dia_aux[0] = bdv->vp[n].datanasc[0]; dia_aux[1] = bdv->vp[n].datanasc[1]; mes_aux[0] = bdv->vp[n].datanasc[3]; mes_aux[1] = bdv->vp[n].datanasc[4]; if (dia_aux[0] == dia_ins[0] && dia_aux[1] == dia_ins[1]) { if (mes_aux[0] == mes_ins[0] && mes_aux[1] == mes_ins[1]) { printf("%d %s\n", bdv->vp[n].codigo, bdv->vp[n].nome); } } } } if (i == 2) { printf("Introduza o mes(com 2 digitos)\n"); scanf("%s", &mes_ins); for (n = 0; n < bdv->npessoas; n++) { mes_aux[0] = bdv->vp[n].datanasc[3]; mes_aux[1] = bdv->vp[n].datanasc[4]; if (mes_aux[0] == mes_ins[0] && mes_aux[1] == mes_ins[1]) { printf("%d %s\n", bdv->vp[n].codigo, bdv->vp[n].nome); } } } } } #include "struct_cidadao.h" typedef struct { pessoa *vp; int npessoas; }bd; #define MAX_NOME 200 #define MAX_CIDADE 100 #define MAX_DATA 11 typedef struct { int codigo; char nome[MAX_NOME]; char localidade[MAX_NOME]; char datanasc[11]; int idade; }pessoa; Se eu não correr nenhuma função, ou seja, carregar logo no 3 (voltar ao menu anterior), ele vai mas se eu executar uma das funções ou as duas e depois quiser voltar ao menu anterior aparece aquele erro. O erro será que esta no ciclo while ? Obrigado desde já. Cumps. jorge618 Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 31, 2016 at 04:03 PM Report Share #601625 Posted December 31, 2016 at 04:03 PM isto não e um jogo do adivinha. Diz exactamente qual e a mensagem de erros, assim qual a linha que a origina IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
jorge618 Posted December 31, 2016 at 04:10 PM Author Report Share #601626 Posted December 31, 2016 at 04:10 PM 5 minutos atrás, HappyHippyHippo disse: isto não e um jogo do adivinha. Diz exactamente qual e a mensagem de erros, assim qual a linha que a origina o programa executa, não há nenhuma linha que origina o erro. Tem razão esqueci-me de colocar a imagem Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 31, 2016 at 04:18 PM Report Share #601627 Posted December 31, 2016 at 04:18 PM qual o tamanho de memoria reservado quando instancias a variavel mes_ins ? qual o tamanho de memória de uma string de dois caracteres? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
jorge618 Posted December 31, 2016 at 04:45 PM Author Report Share #601628 Posted December 31, 2016 at 04:45 PM (edited) acho que não reservei memoria para a variável. Acho que é 2 bits(mas não tenho a certeza). Não tenho certezas de nada... Edited December 31, 2016 at 04:45 PM by jorge618 Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 31, 2016 at 04:56 PM Report Share #601629 Posted December 31, 2016 at 04:56 PM (edited) quando declaras uma variavel (instanciar) estas sempre a reservar memória. Olha para a declaração da variavel em questão e responde a pergunta. no que toca ao tamanho da string, suponho que estas a responder 2 bytes. Se sim, diz que valores são necessários para guardar a string "ab" em memória? Por outras palavras, que valores existem em cada byte da c-style string Edited December 31, 2016 at 04:57 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
jorge618 Posted December 31, 2016 at 05:07 PM Author Report Share #601630 Posted December 31, 2016 at 05:07 PM (edited) uma string de 2 caracteres não ocupa 2 bytes, ou seja o mês_ins também vai ocupar 2 bytes se eu não estiver em erro. Se sim, diz que valores são necessários para guardar a string "ab" em memória? Por outras palavras, que valores existem em cada byte da c-style string Não lhe sei responder a esta questão. Edited December 31, 2016 at 05:08 PM by jorge618 Link to comment Share on other sites More sharing options...
Xendro Posted December 31, 2016 at 05:08 PM Report Share #601631 Posted December 31, 2016 at 05:08 PM 1 minuto atrás, HappyHippyHippo disse: quando declaras uma variavel (instanciar) estas sempre a reservar memória. Olha para a declaração da variavel em questão e responde a pergunta. no que toca ao tamanho da string, suponho que estas a responder 2. Se sim, diz que valores são necessários para guardar a string "ab" em memória? Por outras palavras, que valores existem em cada byte da c-style string desculpa intrometer-me mas acho que devias lembrar o "jorge618" de que uma variavel string deve ter um terminador 'null' (em C) que necessita de um byte. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 31, 2016 at 05:08 PM Report Share #601632 Posted December 31, 2016 at 05:08 PM a tua frase não da sentido. Escreve em portugues IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 31, 2016 at 05:10 PM Report Share #601633 Posted December 31, 2016 at 05:10 PM (edited) 1 minute ago, Xendro said: desculpa intrometer-me mas acho que devias lembrar o "jorge618" de que uma variavel string deve ter um terminador 'null' (em C) que necessita de um byte. não sou eu que tenho de o lembrar. E ele que tens de se recordar das aulas. Porque achas que ando a volta desse assunto desde o inicio do topico acredita que depois de se lembrar nunca mais iria se esquecer dos problemas que originam se esquecer de algo tao fundamental Edited December 31, 2016 at 05:11 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
jorge618 Posted December 31, 2016 at 05:13 PM Author Report Share #601634 Posted December 31, 2016 at 05:13 PM jorge618 vai ocupar 5bytes(por ser 5 chars)+12(por ser 3 inteiros)+1 (/0) ? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 31, 2016 at 05:15 PM Report Share #601635 Posted December 31, 2016 at 05:15 PM de que estas a falar agora? Da string "ab" que perguntei? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
jorge618 Posted December 31, 2016 at 05:17 PM Author Report Share #601636 Posted December 31, 2016 at 05:17 PM (edited) 6 minutos atrás, HappyHippyHippo disse: de que estas a falar agora? Da string "ab" que perguntei? era do meu nick. Ou como é tudo char conta tudo como 1? tipo 1[j]+1[o]+1[r]+1[g]+[e]+1[6]+1[1]+1[8]+1[/0] ? Mas da string ab vai ocupar 3 bytes,(a[1]+b[1]+/0[1])certo? Edited December 31, 2016 at 05:23 PM by jorge618 Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 31, 2016 at 05:22 PM Report Share #601637 Posted December 31, 2016 at 05:22 PM (edited) nem vou comentar a absurdidade que escreveste na resposta anterior, do teu nick (vou supor que estas cansado). agora que sabes que necessitas de N+1 bytes para guardar uma string com N carateres, diz (olhando para a declaração da variavel que e indicada no erro) quantos bytes estas a dizer que esta tem? ps: Não voltes a escrever /0, quanto muito '\0' Edited December 31, 2016 at 05:24 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
jorge618 Posted December 31, 2016 at 05:27 PM Author Report Share #601638 Posted December 31, 2016 at 05:27 PM Problema resolvido! Obrigado mais uma vez Link to comment Share on other sites More sharing options...
PsySc0rpi0n Posted December 31, 2016 at 06:55 PM Report Share #601639 Posted December 31, 2016 at 06:55 PM Esse problema até pode ter ficado resolvido mas no futuro vais continuar a ter os mesmos problemas! Não dissecaste a tua dúvida até ao fim e por isso vais continuar a tê-la! Kurt Cobain - Grunge misses you Nissan GT-R - beast killer Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now