RZTX Postado Março 24, 2011 Denunciar Share Postado Março 24, 2011 (editado) void menu1(int qtdcidades, int qtdinteiros, int qtdmontadoras){ int qtd=0; printf("%d %d %d\n",qtdcidades, qtdinteiros, qtdmontadoras); char str[]=""; if(qtdcidades>0){ strcat(str, "cidades"); qtd++; } printf("%d %d %d\n",qtdcidades, qtdinteiros, qtdmontadoras); if(qtdinteiros>0){ if(qtd>0){ strcat(str, ", inteiros"); }else{ strcat(str, "inteiros"); } qtd++; } printf("%d %d %d\n",qtdcidades, qtdinteiros, qtdmontadoras); if(qtdmontadoras>0){ if(qtd>0){ strcat(str, ", montadoras"); }else{ strcat(str, "montadoras"); } qtd++; } printf("%d %d %d\n",qtdcidades, qtdinteiros, qtdmontadoras); if(qtd==0){ strcat(str, "nenhuma"); } printf("%d\n",qtd); } int main(){ int z=1; int w=2; int x=3; menu1(z,w,x); return 0; }Resultado:Não entendi porque os ints mudaram para esses números enormes Editado Março 24, 2011 por RZTX Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 CPP Postado Março 24, 2011 Denunciar Share Postado Março 24, 2011 Não sei o que você tava tentando fazer mas, char str[]=""; aloca um byte e depois você executa alguns strcat...isso corrompe sua memoria.você precisa alocar espaço suficiente , tipo char str[256]=""; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RZTX Postado Março 25, 2011 Autor Denunciar Share Postado Março 25, 2011 Era esse mesmo o problemavaleu! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
RZTX
Resultado:
Não entendi porque os ints mudaram para esses números enormes
Editado por RZTXLink para o comentário
Compartilhar em outros sites
2 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.