augustooo 0 Denunciar post Postado Abril 29, 2009 Olá, tenho um trabalho pra fazer com listas encadeadas e tal, porém a struct não recebe a string, já o elemento inteiro funciona normalmente. Fiz um programa básico que mostra exatamente o ponto onde não funciona como deveria. A string frase[40] fica sempre como nula. Alguém poderia indicar meu erro? Obrigado. #include <stdio.h> #include <stdlib.h> struct teste { char frase[40]; int numero; }; struct teste *inicio; void main(void) { printf("Digite a frase:"); scanf("%40[^\n]s",inicio->frase); printf("\nDigite um numero: "); scanf("%i",&inicio->numero); printf("\n\n%s %i",inicio->frase,inicio->numero); scanf("%*c%*c"); } Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Abril 29, 2009 você esqueceu de alocar espaço para a estrutura... struct teste { char frase[40]; int numero; }; struct teste *inicio; int main() { //aqui alocamos espaço para a struct inicio = (struct teste*)malloc(sizeof(struct teste)); printf("Digite a frase:"); scanf("%40[^\n]%*c",inicio->frase); printf("\nDigite um numero: "); scanf("%i%*c",&(inicio->numero)); printf("\n\n%s %i",inicio->frase,inicio->numero); scanf("%*c"); return 0; } ATENÇÃO!!! main retorna um int, e NÃO é void... Compartilhar este post Link para o post Compartilhar em outros sites
augustooo 0 Denunciar post Postado Abril 29, 2009 você esqueceu de alocar espaço para a estrutura... struct teste { char frase[40]; int numero; }; struct teste *inicio; int main() { //aqui alocamos espaço para a struct inicio = (struct teste*)malloc(sizeof(struct teste)); printf("Digite a frase:"); scanf("%40[^\n]%*c",inicio->frase); printf("\nDigite um numero: "); scanf("%i%*c",&(inicio->numero)); printf("\n\n%s %i",inicio->frase,inicio->numero); scanf("%*c"); return 0; } ATENÇÃO!!! main retorna um int, e NÃO é void... ah sim, funciono certinho no outro programa la tb, mt obrigado Victor. Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Abril 29, 2009 Se funcionou é bom. Se funcionou e você entendeu o porque, é ÓTIMO! =D [] Compartilhar este post Link para o post Compartilhar em outros sites