Ir para conteúdo

POWERED BY:

Arquivado

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

serginho_pv

erro na declaração

Recommended Posts

Preciso construir uma tabela de índices utilizando ponteiros, mas encontrei um erro de compilação que não consigo resolver.

A mensagem de erro é:

request for member 'cod_cliente' in something not a structure or union.

O erro aparece na linha:

 

cod_cliente = pc.cod_cliente;

 

Estou utilizando o Dev C++ 4.9.9.2 Segue parte do código...

typedef struct{
	char cod_cliente[7];
	char nome[40];
	char fone[15];
	} clientes;

void IndiceClientes(clientes *pc, FILE *arq_c) {
	 int quant=0, i;
	 char *aux;
	 arq_c = fopen("clientes.asr","rb");
	 while(!feof(arq_c)) {
		 fread(&pc,sizeof(clientes),1,arq_c);
		 quant++;
	 }
	 fclose(arq_c);
	 char cod_cliente[quant][7];
	 char *pcod_cliente[quant];
	 arq_c = fopen("clientes.asr","rb");
	 i=0;
	 while(!feof(arq_c)){
		 fread(&pc,sizeof(clientes),1,arq_c);
		 cod_cliente[i] = pc.cod_cliente;
		 i++;
	 }
	 fclose(arq_c);
	 for(i=0; i<quant; i++) {
		 if (*pcod_cliente[i] > *pcod_cliente[i+1]){
			 aux = pcod_cliente[i];
			 pcod_cliente[i] = pcod_cliente[i+1];
			 pcod_cliente[i+1] = aux;
		 }
	 }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preciso construir uma tabela de índices utilizando ponteiros, mas encontrei um erro de compilação que não consigo resolver.

A mensagem de erro é:

request for member 'cod_cliente' in something not a structure or union.

Segue parte do código...

typedef struct{
	char cod_cliente[7];
	char nome[40];
	char fone[15];
	} clientes;

void IndiceClientes(clientes *pc, FILE *arq_c) {
	 int quant=0, i;
	 char *aux;
	 arq_c = fopen("clientes.asr","rb");
	 while(!feof(arq_c)) {
		 fread(&pc,sizeof(clientes),1,arq_c);
		 quant++;
	 }
	 fclose(arq_c);
	 char cod_cliente[quant][7];
	 char *pcod_cliente[quant];
	 arq_c = fopen("clientes.asr","rb");
	 i=0;
	 while(!feof(arq_c)){
		 fread(&pc,sizeof(clientes),1,arq_c);
		 cod_cliente[i] = pc.cod_cliente;
		 i++;
	 }
	 fclose(arq_c);
	 for(i=0; i<quant; i++) {
		 if (*pcod_cliente[i] > *pcod_cliente[i+1]){
			 aux = pcod_cliente[i];
			 pcod_cliente[i] = pcod_cliente[i+1];
			 pcod_cliente[i+1] = aux;
		 }
	 }
}

o erro aparece na linha:

cod_cliente = pc.cod_cliente;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta renomear a sua variável 'cod_cliente', talvez seja algum conflito ou coisa do tipo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa josé!

eu nem tinha visto que era um ponteiro... ¬¬

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.