Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

augustooo

[Resolvido] String p/ Struct

Recommended Posts

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

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

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

Se funcionou é bom.

 

Se funcionou e você entendeu o porque, é ÓTIMO!

 

=D

 

[]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.