Tenho um problema com o executável programado em C. Quando o programa atinge uma determinada parte do código ele simplesmente para de funcionar (o windows pede para depurar o arquivo). Não sei o que fazer.
Segue o código:
#include <stdio.h>
#include <stdlib.h>
struct carro{
char* nome;
char* cor;
char* placa;
int ano;
int portas;
};
void cadastar(){
struct carro c;
c.nome = "Corolla";
c.cor = "Azul";
c.placa = "THI 3012";
c.ano = 1996;
c.portas = 4;
}
void exibir(){
struct carro c;
printf("%s", c.nome);
printf("\n");
printf("%s", c.cor);
printf("\n");
printf("%s", c.placa);
printf("\n");
printf("%i", c.ano);
printf("\n");
printf("%i", c.portas);
}
int main(){
char* com;
printf(">> ");
scanf("%s", com);
if(strcmp(com, "carro") == 0){ //Quando o executável chega nesta parte ele para de funcionar.
cadastar();
exibir();
}else{
printf(com);
printf("\n");
printf("err.");
}
getch();
return 0;
}
e testando o código postando com sua sugestão funcionou e gerou esse nó na minha cabeça. E porque você não recomenda variáveis globais?