Ir para conteúdo

Arquivado

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

viciado

[Resolvido] Struct

Recommended Posts

typedef: Cria um novo tipo para variável..

 

Ex:

 

typeded struct{

char nome[50];

int mat;

}aluno;

 

aluno é o novo tipo de variavel

 

para gravar dados:

 

int main(){

aluno variavel;

 

variavel.nome = 'Jose';

variavel.mat = 1;

}

 

O acesso também é feito do mesmo modo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Como funciona typedef em estruturas ?

Fala viciado, tudo certo?

 

O typedef cria um sinonimo a um tipo de dados, seja uma estrutura ou seja um inteiro.

A grande vantagem é que não precisamos usar a palavra-chave struct antes de usar um tipo de dados que criamos, o rafael.t.a ja deu um bom exemplo!

 

 

2) Como posso gravar dados e acessar dados de uma estrutura dentro de outra ?

Vamos declarar duas estruturas:

typedef struct
{
int dia, mes, ano;
} data;

typedef struct
{
int sexo;
char *nome;
data nascimento;
} pessoa;

Para acessar o dia que a "pessoa" nasceu é muito fácil:

//quando temos:
pessoa *eu;

	eu = (pessoa*)malloc(sizeof(pessoa));
	eu->nascimento.dia = 10;

//ou, quando temos:
pessoa eu;

	 eu.nascimento.dia = 10;

 

Eram essas as suas dúvidas?

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, mais não sei utilizar estruturas muito bem. Estou tentando fazer uma agenda.

Gostaria de gravar o endereco na estrutura agenda, só que para isso a deve acessar a estrutura dados_endereco onde tem as variáveis para gravar: rua, número e bairro.

 

#include <stdio.h>
#include <stdlib.h>

typedef struct dados_endereco
		{
			   char rua[30];
			   int num;
			   char bairro[20];
			   };
typedef struct agenda
		{
			   char nome[30];
			   float tel;
			   char email[20];
			   dados_endereco endereco;
			   };
void cadastrar(){
	 printf("Informe o nome \n");
	 scanf("%s",&agenda.nome);
	 printf("Informe o telefone \n");
	 scanf("%f",&agenda.tel);
	 printf("Informe o email \n");
	 scanf("%s",&agenda.email);
int main()
{
  int n;
  do {
  printf("\n\n Agenda \n ");
  printf("Digite uma opcao \n");
  printf("(1) Cadastrar \n");
  printf("(2) Pesquisar \n");
  printf("(3) Sair \n");
  scanf("%d",&n);
  } while (n != 1 || n!= 2 || n!= 3);
  switch(n){
			case 1:
				 cadastrar();
				 break;
			case 2:
				 pesquisar();
				 break;
			case 3:
				 exit();
				 break;
				 }
  system("PAUSE");	
  return 0;
}

 

Desculpe, essa parte não entendi nada:

pessoa *eu;

	eu = (pessoa*)malloc(sizeof(pessoa));
	eu->nascimento.dia = 10;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aquela parte que você não entendeu, relaxa...

é um pouco mais avançado.

 

Vamos ao seu código:

você tem uma estrutura, mas não nomeou nada para o typedef, mude as declarações para:

typedef struct dados_endereco_
{
	 char rua[30];
	 int num;
	 char bairro[20];
} dados_endereco;

typedef struct agenda_
{
	 char nome[30];
	 float tel;
	 char email[20];
	 dados_endereco endereco;
} agenda;
Agora estamos obedecendo as regras: typedef old_type new_type;

 

você vai precisar criar variáveis do tipo agenda para manipular esses dados.

por exemplo:

agenda cadastrar(void);

int main()
{
agenda minhaAgenda; //aqui nós nomeamos uma variável do tipo "agenda"

	minhaAgenda = cadastrar();

return 0;
}

agenda cadastrar(void)
{
agenda aa;
	 printf("Informe o nome \n");
	 scanf("%s%*c", &aa.nome);

	 printf("Informe o telefone \n");
	 scanf("%d%*c", &aa.tel);

	 printf("Informe o email \n");
	 scanf("%s%*c", &aa.email);

	 printf("Informe a rua \n");
	 scanf("%s%*c", &aa.endereco.rua);

	 return aa;
}

Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leia esse tópico

 

A função "cadastrar" que eu declarei não é void. Ela retorna uma estrutura "agenda"

agenda cadastrar(void);


//tipo_de_retorno nome_da_funcao(parametros);
Acontece que ela não leva nada como parametro!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe a insistencia é que desejo pretendo enteder bem para não ficar toda hora perguntando

 

Pq eu preciso criar uma varialvel do tipo agenda que recebe a função cadastrar() ? não posso chamar direto na main a função ?

Entendi a função cadastrar(), só que pq tem que retornar a variavel "aa" ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

depende como você esta usando a agenda..

se for agenda uma variavel global naum precisa retornar nd, vai depender de como você vai trabalhar..

vai postando ai..

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq eu preciso criar uma varialvel do tipo agenda que recebe a função cadastrar() ? não posso chamar direto na main a função ?

Como o quitZAUMMMM disse, isso depende de como você ta programando.

O que acontece é que usar variáveis globais é uma prática de programação.

 

você não precisa, obrigatoriamente, seguir a minha linha de raciocínio.

Mas você precisa de variáveis para controlar a coisa. Não se pode criar uma struct e tentar acessála diretamente, por exemplo:

struct foo
{
int bar;
};

int main()
{
foo = qualquer_coisa;

return 0;
}

Entendi a função cadastrar(), só que pq tem que retornar a variavel "aa" ?

imagina que é para atribuir um valor a um integer:

int soma(int a, int b);
{
int tmp;
tmp = a+b;

return tmp;
}

int main()
{
int a;

a = soma(2, 3);

return 0;
}

O raciocínio é análogo para variáveis do tipo "agenda". A variável "minhaAgenda" tem que receber um valor que seja obrigatoriamente do tipo "agenda". Por isso retornamos um valor assim.

Aconselho você a estudar mais sobre funções antes de partir para as estruturas de dados. A coisa começa a complicar um pouquinho mais pra frente e ese tipo de "conceito" faz falta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for um programa pequeno td bem as variaveis globais..

+ EU como o victor disse tbm naum gosto de usar variaveis globais..

 

como mew professor dizia: "naum usa, senaum cai o dedo" =p

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quit, acho que muito pelo contrário. Se for um programa pequeno, a variável não é necessária em vários locais diferentes. Então não existe porquê declarar uma variável global. Agora, dá uma olhada naquele diff de arquivos com threads que eu postei, a quantidade de variável global e extern que existe ali. Nese caso seria tosco ficar passando como argumento p/ tudo quanto é função e criando mais funções ainda p/ atualizar a lista de arquivos,por exemplo,que é o "filé real-time" da coisa.

 

Lógico: é só fazendo um monte de códigos que você consegue prever o que vai facilitar tua vida. Comecei a escrever aquele diff direto com as variáveis globais. Todas as coisas que tive que reescrever foram relacionadas a mutexes (mudar posição, adicionar um,etc). Acho muito sem-noção professor falar isso de cair o dedo, que é ruim sem dar maiores explicações. O bom programador não evita construções da linguagem. Ele só sabe quando usá-las.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é Isis lendo seu post tenho q concordar com você!

+ é q tbm sempre fui acostumado a programar sem variaveis globais qnd o programa é meio grandinho :s, e você sabe pra deixar vicios é complicado UFHDASU!

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Viciado,

 

Enetendo o q você fala, e realmente não se grile em perguntar as coisas quando tiver dúvidas, eu falo isso pq tb estou aprendendo C e pegar as coisas prontas sem saber o real significado, faz você errar la na frente, o C e cheio de frescurinhas e detalhes, qualquer um q passe desapercebido, você ferra o programa.

 

Se liga nessa sua dúvida aqui.

 

pessoa *eu;

	eu = (pessoa*)malloc(sizeof(pessoa));
	eu->nascimento.dia = 10;

Quando você tem um operador "*" a frente de uma variável, significa q você está criando um ponteiro para ela..

O q é um ponteiro ? Ponteiro é um "apontador" para um endereço de memória.

 

Enfim, quando você usa "pessoa *eu" , você ta dizendo q a variavel eu, é um ponteiro da struct "pessoa" que você criou la em cima.

Quando você declara um ponteiro, ele ainda não reservou na memória do pc aquele espaço ainda, é apenas um ponteiro apontando para nada, por isso ele usa o "malloc" que poderia ser feito tb desta maneira aqui

eu = malloc(sizeof *pessoa);
O malloc, ele vai reservar memória no seu pc e retornar para o seu ponteiro, o endereço dessa memória que ele reservou. Nesse caso, ele está reservando memória suficiente para abrigar a sua struct, portanto você poderá peencer esses valores depois.

 

Quando você trabalha com ponteiro de struct, você utiliza o "->" para referenciar ao elemento e quando você trabalha com a propria struct você utiliza o "." para referenciar o elemento.

Se liga no detalhe

 

eu->nascimento.dia = 10;

A variável "eu" ela é um ponteiro da struct "pessoa" onde um dos elementos "nascimento" é uma struct, se você reparar na struct declarada la em cima , ele não declarou nascimento com um "*" na frente, portando quando ele isntancia, ele instancia a struct, então o elemento da struct "nascimento" ele utiliza o "." para referenciar a ele.

 

typedef struct
{
int sexo;
char *nome;
data nascimento;
} pessoa;

 

Bem, espero q tenha ficado claro essa parte, e é legal você entender como as coisas funcionam , pq só assim você vai conseguir aprender a desenvolver o q tem na sua mente..

 

Dê uma estudada sobe Structs e ponteiros para você entender melhor sobre isso..

 

 

Ahh mais um detalhe, me corrijam se eu estiver errado por favor.

Não sei exatamente se está programando em C ou C ++

Mas tem diferença entre 2 coisas, C++ tem umas facilidades que não tem em C..

 

#include <string.h>

//C++
variavel.nome = 'Jose';

//C
strcpy(variavel.name, "jose");

Absss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Após o cadastro na pesquisa informa sempre "nome invalido". Não sei pq estou fazendo essa função pq não tem o que pesquisar vai ser sempre 1 cadastro.

 

#include <stdio.h>
#include <stdlib.h>

typedef struct dados_endereco_
		{
			   char rua[30];
			   int num;
			   char bairro[20];
			   }dados_endereco;
typedef struct agenda_
		{
			   char nome[30];
			   float tel;
			   char email[20];
			   dados_endereco endereco;
			   }agenda;
agenda cadastrar(void){
	 agenda aa;
	 printf("Informe o nome \n");
	 scanf("%s",&aa.nome);
	 printf("Informe o telefone \n");
	 scanf("%f",&aa.tel);
	 printf("Informe o email \n");
	 scanf("%s",&aa.email);
	 printf("Informe a rua \n");
	 scanf("%s",&aa.endereco.rua);
	 printf("Informe o numero \n");
	 scanf("%d",&aa.endereco.num);
	 printf("Informe o bairro \n");
	 scanf("%s",&aa.endereco.bairro);
	 return aa;
}
agenda pesquisar(void){
	   agenda aa;
	   char nome[30];
	   printf("Informe o nome \n");
	   fgets(nome, 30, stdin);
	   if(nome == aa.nome){
			   printf("%s \n",aa.nome);
			   printf("%f \n",aa.tel);
			   printf("%s \n",aa.email);
			   printf("%s \n",aa.endereco.rua);
			   printf("%d \n",aa.endereco.num);
						  }
	   else {
			printf("Nome invalido \n");
			}
	   return aa;
}
int main()
{
  int n;
  do{
  printf("Informe opcao que deseja \n");
  printf("(1) Cadastrar \n");
  printf("(2) Pesquisar \n");
  scanf("%d",&n);
  } while(n!= 1 && n!= 2);
  if(n==1){
		   agenda agenda_cadastra;
		   agenda_cadastra = cadastrar();
			   }
  else {
	   agenda agenda_pesquisa;
	   agenda_pesquisa = pesquisar();
	   }
  printf("Pesquisa \n");
  agenda agenda_pesquisa;
  agenda_pesquisa = pesquisar();
  system("PAUSE");	
  return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

do{
 printf("Informe opcao que deseja \n");
 printf("(1) Cadastrar \n");
 printf("(2) Pesquisar \n");
 scanf("%d",&n);
 } while(n!= 1 && n!= 2);

 

E se o usuário quiser interromper o programa?

P/ falar a verdade não entendi o programa: você faz um loop pra um menu sem informar ao usuário que a opção está errada e faz o tratamento da opção fora do while...

 

 

É um tanto óbvio porque dá sempre Nome inválido:

 

agenda pesquisar(void){
   agenda aa;
   char nome[30];
   printf("Informe o nome \n");
   fgets(nome, 30, stdin);
   if(nome == aa.nome){
		   printf("%s \n",aa.nome);
		   printf("%f \n",aa.tel);
		   printf("%s \n",aa.email);
		   printf("%s \n",aa.endereco.rua);
		   printf("%d \n",aa.endereco.num);
					  }
   else {
		printf("Nome invalido \n");
		}
   return aa;
}

 

Você tem algum dado em aa? Não.

 

Quando você trabalha com ponteiro de struct, você utiliza o "->" para referenciar ao elemento e quando você trabalha com a propria struct você utiliza o "." para referenciar o elemento.

Se liga no detalhe

 

Na verdade você pode usar o '.' em ponteiro p/ struct. Basta fazer (*ST).membro.

 

 

Ahh mais um detalhe, me corrijam se eu estiver errado por favor.

Não sei exatamente se está programando em C ou C ++

Mas tem diferença entre 2 coisas, C++ tem umas facilidades que não tem em C..

 

#include <string.h>

//C++
variavel.nome = 'Jose';

//C
strcpy(variavel.name, "jose");

 

C também tem facilidades:

4abce.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala masters, tudo bem com vocês? E a expectativa para o feriado ein?

 

Bem pessoal para evitar abrir um novo tópico vou utilizar este que tem uma dúvida quase que similar a minha. Para a disciplina de estrutura de dados estamos começañdo com pilhas e filas e solucionando um soluciona o outro automáticamente, e quanto a funcionalidade das estruturas ainda devo melhorar, meu problema é mais com sintaxe e funcionamento da linguagem.

Bem para não escrever diverssas vezes durante a disciplina a estutura de fila eu quis fazer tudo separado e ai fodeu tudo, seguem os códigos:

 

App.cpp

Aqui contem o a função mains de minha aplicação e faz a ligação de todos os arquivos (funcionalidades).

#include<iostream.h>	//Entrada e saida de stream
#include "fila.cpp"	 //Métodos Manipuladores de Fila
#include "tfila.cpp"	//Estrututa de dados da fila

// Variavel GLOBAL
TFila fila;

float media(TFila *p){
	float media = 0;
	if(!estaVazio(p)){
		for(int i = p->primeiro; i < p->ultimo; i++){
			media += p->mes[i];
		}
		media /= p->ultimo;
		return media;
	}
	cout<<"\n[ERRO]: A lista está vazia!" <<endl;
	return NULL;
}
float toKelvin(float celsius){return celsius + 273.15;}
bool menu(){
	int opcao;
	float valor;
	cout<<"\nEscolha:"<<endl;
	cout<<"\t1) Retornar o topo da fila." <<endl;
	cout<<"\t2) Retornar o ultimo da fila." <<endl;
	cout<<"\t3) Inserir elemento." <<endl;
	cout<<"\t4) Excluir elemento." <<endl;
	cout<<"\t5) Verificar se existem elementos na fila." <<endl;
	cout<<"\t6) Verificar se cabem mais elementos na fila." <<endl;
	cout<<"\t7) Listar elementos da fila." <<endl;
	cout<<"\t8) Calcular Medias" <<endl;
	cout<<"\t0) Sair do aplicativo." <<endl;
	cin>>opcao;

	switch(opcao){
		case 0:
			return false;
			break;
		case 1:
			cout <<retornaTopo(fila) <<endl;
			break;
		case 2:
			cout <<retornaUltimo(fila) <<endl;
			break;
		case 3:
			cout<<"Entre com o valor de deseja inserir:"; cin>>valor;
			inserir(valor, fila);
			cout<<endl;
			break;
		case 4:
			cout<<"Valor " <<excluir(fila) <<" excluido da fila." <<endl;
			break;
		case 5:
			if(estaVazio){cout<<"Nao existem elemntos na fila."<<endl;}
			else{cout<<"Existem elementos na fila"<<endl;}
			break;
		case 6:
			if(estaCheio){cout<<"Lista cheia."<<endl;}
			else{cout<<"Lista nao cheia"<<endl;}
			break;
		case 7:
			listar();
			break;
		case 8:
			cout<<"Media em CELSIUS: "<<media(fila) <<endl;
			cout<<"Media em Kelvins: "<<toKelvin(media(fila)) <<endl;
			break;
		default:
			cout<<"Opcao invalida, tente uma de acordo com o menu." <<endl;
			break;
	}
	return true;

}
int main(void){
	while(menu()){continue;}
	return 0;
}

tfila.cpp

Contem o tipo estruturado, meio como se fosse só um encapsulador de tipo.

#define MES 12
typedef struct TFila{
	int primeiro;
	int ultimo;
	float mes[MES];
	int limite = MES;
}TFila;
fila.cpp

Contem os métodos de manipulação de filas

#include <stdio.h>


float retornaTopo(TFila *p){
	// Isso só é possível pois assumimos que a TFila segue essa assinatura
	// Versão com operador ternário
	/**
	 *<code>*/
	 (!estaVazio(p)) ? return p->primeiro : return NULL;
	 /**</code>
	 */
	/// Verssão com IF
	/**
	 *<code>
	 *if(!eVazio){
	 *  return p->primeiro;
	 *}
	 *return NULL;
	 *</code>
	 */
}
float retornaUltimo(TFila *p){
	// Veja retorna topo
	(!estaVazio(p))  ? return p->ultimo : return NULL;

	/**
	 * Vesão com IF
	 *<code>
	 *if(!eVazio){return p->ultimo;}
	 *return NULL;
	 *</code>
	 */
}
void inserir(float elemento, TFila *p){
	if(!estaCheio(p)){
		p->mes[p->ultimo++] = (float)elemento; 

		//DEBUG
		printf("\n[DEBUG MESSAGE]\tInserido Array[%d] = %f",p->ultimo, elemento);
	}
	else{printf("Erro! A Lista já está cheia, elemine alguns elementos.");}
}
float excluir(TFila *p){
	if(!estaVazio(p)){
		float elemento = p->mes[p->primeiro];

		// Vou deslocar uma-a-um os elementos da fila ou seja é a frase:
		// "A fila anda."
		for(int i = p->primeiro; i < p->ultimo; i++){p->mes[i] = p->mes[i+1];}
		p->ultimo--;
		return elemento;
	}
}
bool estaCheio(TFila *p){(p->ultimo == (p->limite-1)) ? return true : return false;}
bool estaVazio(TFila *p){(p->ultimo == p->primeiro) ? return true : return false;}
void listar(TFila *p){
	if(!estaVazio(p)){for(int i = p->primeiro; i < p->ultimo; i++){printf("\n%f",p->mes[i]);}}
	else{printf("[ERRO] Lista vazia.");}
}

 

Bem eu estou utilizando dois compiladores para tal um é o cygwin e o outro(apenas para ver se tava td ok antes de postar essa dúvida) DEV C++

Bem não vou postar todas as mensagens de erros pois são muitas mas posso resumir o seguinte:

  • Toda vez que um método é chamado ele não consegue reconhecer o tipo TFila.
  • Quando passa pelo operador ternário ele reclama do primeiro return.
  • Ele informa que nas operações com TFila ele interpreta um p->ultimo como TFila e dá incompatíbilidade de tipos.

em espero que eu tenha sido claro, para compilar com o cygwin eu uso:

g++ app.cpp -o app.exe

//Não adianta tentar com gcc app.cpp -o app.exe pois o código (conjunto da obra) segue o padrão C++

Já para o DEV C++ é o famoso ctrl+f9.

 

 

Aguardo possíveis respostas e qualquer coisa se precisarem de mais dados postem ai.

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom aki tbm deu bastante erro.

+ um warning aki q percebi foi:

float retornaUltimo(TFila *p){
	// Veja retorna topo
	(!estaVazio(p))  ? return p->ultimo : return NULL;

	/**
	 * Vesão com IF
	 *<code>
	 *if(!eVazio){return p->ultimo;}
	 *return NULL;
	 *</code>
	 */
}

pra um tipo float você ta qrendo retornar um NULL ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para o pessoal do Linux a saida do Cygwin é:

 

C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\Exemplos>g++ app13.cpp -o app13.exe
In file included from /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/backward/iostream.h:31,
				 from app13.cpp:16:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider u
sing one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead
of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
In file included from app13.cpp:17:
fila.cpp:12: error: `TFila' was not declared in this scope
fila.cpp:12: error: `p' was not declared in this scope
fila.cpp:12: error: expected `,' or `;' before '{' token
fila.cpp:30: error: `TFila' was not declared in this scope
fila.cpp:30: error: `p' was not declared in this scope
fila.cpp:30: error: expected `,' or `;' before '{' token
fila.cpp:42: error: `TFila' has not been declared
fila.cpp:42: error: ISO C++ forbids declaration of `p' with no type
fila.cpp: In function `void inserir(float, int*)':
fila.cpp:43: error: `estaCheio' undeclared (first use this function)
fila.cpp:43: error: (Each undeclared identifier is reported only once for each function it appears in.)
fila.cpp:44: error: request for member `mes' in `*p', which is of non-class type `int'
fila.cpp:44: error: request for member `ultimo' in `*p', which is of non-class type `int'
fila.cpp:47: error: request for member `ultimo' in `*p', which is of non-class type `int'
fila.cpp: At global scope:
fila.cpp:51: error: `TFila' was not declared in this scope
fila.cpp:51: error: `p' was not declared in this scope
fila.cpp:51: error: expected `,' or `;' before '{' token
fila.cpp:62: error: `bool estaCheio' used prior to declaration
fila.cpp:62: error: `TFila' was not declared in this scope
fila.cpp:62: error: `p' was not declared in this scope
fila.cpp:62: error: expected `,' or `;' before '{' token
fila.cpp:63: error: `TFila' was not declared in this scope
fila.cpp:63: error: `p' was not declared in this scope
fila.cpp:63: error: expected `,' or `;' before '{' token
fila.cpp:64: error: variable or field `listar' declared void
fila.cpp:64: error: `TFila' was not declared in this scope
fila.cpp:64: error: `p' was not declared in this scope
fila.cpp:64: error: expected `,' or `;' before '{' token
In file included from app13.cpp:17:
fila.cpp:67:2: warning: no newline at end of file
In file included from app13.cpp:18:
tfila.cpp:6: error: ISO C++ forbids initialization of member `limite'
tfila.cpp:6: error: making `limite' static
tfila.cpp:6: error: ISO C++ forbids in-class initialization of non-const static member `limite'
In file included from app13.cpp:18:
tfila.cpp:7:8: warning: no newline at end of file
app13.cpp: In function `float media(TFila*)':
app13.cpp:25: error: `estaVazio' cannot be used as a function
app13.cpp:33: warning: converting to non-pointer type `float' from NULL
app13.cpp: In function `bool menu()':
app13.cpp:56: error: `retornaTopo' cannot be used as a function
app13.cpp:59: error: `retornaUltimo' cannot be used as a function
app13.cpp:63: error: cannot convert `TFila' to `int*' for argument `2' to `void inserir(float, int*)'
app13.cpp:67: error: `excluir' cannot be used as a function
app13.cpp:78: error: `listar' cannot be used as a function
app13.cpp:81: error: cannot convert `TFila' to `TFila*' for argument `1' to `float media(TFila*)'
app13.cpp:82: error: cannot convert `TFila' to `TFila*' for argument `1' to `float media(TFila*)'
app13.cpp:94:2: warning: no newline at end of file

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.