Ir para conteúdo

POWERED BY:

Arquivado

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

Fernando Almeida

problemas com ponteiros e estruturas

Recommended Posts

bom eu tenho que fazer um programa que leia um vetor (isso já esta feito) e que a partir de determinado elemento desse vetor ele ordene os proximos elementos de acordo com uma sequencia predefinida.

esta sequencia esta declarada como uma estrutura... bom não sei como fazer para colocar um ponteiro para essa estrutura e a apartir dele mostrar o resultado.

esse é um exemplo reduzido do meu programa.

#include<stdio.h>
#include<dos.h>
#include<math.h>

void main()
{
  typedef struct P
  {
	unsigned char sinal,face;
	unsigned int csi;
	unsigned char so;
	unsigned int csf;
	unsigned long int sap,snp;
  } t;
  char V[512];
  int i;
  for (i=0;i<512;i++)
  {
	V[i]=0;
  }
  V[0x1be]=0x00; /*colocando os valores de teste no vetor*/
  V[0x1bf]=0x01;
  V[0x1c0]=0x01;
  V[0x1c1]=0x00;
  V[0x1c2]=0x04;
  V[0x1c3]=0x0f;
  V[0x1c4]=0x20;
  V[0x1c5]=0x1e;
  V[0x1c6]=0x20;
  V[0x1c7]=0x00;
  V[0x1c8]=0x00;
  V[0x1c9]=0x00;
  V[0x1ca]=0xe0;
  V[0x1cb]=0xf7;
  V[0x1cc]=0x00;
  V[0x1cd]=0x00;
  V[0x1ce]=0x80;
  V[0x1cf]=0x00;
  V[0x1d0]=0xc1;
  V[0x1d1]=0xde;
  V[0x1d2]=0x0a;
  V[0x1d3]=0x0f;
  V[0x1d4]=0xe0;
  V[0x1d5]=0xde;
  V[0x1d6]=0x00;
  V[0x1d7]=0xf8;
  V[0x1d8]=0x00;
  V[0x1d9]=0x00;
  V[0x1da]=0x00;
  V[0x1db]=0x08;
  V[0x1dc]=0x00;
  V[0x1cd]=0x00;
  for (i=0x1be;i<512;i+=16)
  {
  t=&V[i]; // aqui eu queria que t fosse igual a estrutura P e jah alocasse os valores na sequencia
  printf("%3x|%3x|%5x|%3x|%5x|%8x|%8x \n",t->sinal,t->face,t->csi,t->so,t->csf,t->sap,t->snp); /* aqui é para mostrar o resultado*/
  }
  getch();
}
acredito que eu tenha conseguido explicar minha duvida/problema

grato por qualquer ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

me diz uma coisa q posicao [e essa:

V[0x1be]=0x00;
??

Compartilhar este post


Link para o post
Compartilhar em outros sites

me diz uma coisa q posicao [e essa:

V[0x1be]=0x00;
??

essa é a posição 0x1be = 446 so que um é base 16 e outro base 10, e o valor 0x00 pode ser alterado para 0 ( eu deixei como base 16 pq no meu exemplo eu vou querer tudo como hexa )

 

vlw mais alguem tem alguma informação de como fazer o que eu quero????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em vez de colocar indice em hexa, por que nao coloca em decimal mesmo?

 

char V[512];
 int i;
 for (i=0;i<512;i++)
 {
V[i]=0;
 }

 

Use memset no lugar desse for.

 

t=&V[i];

 

você afinal quer que t seja uma estrutura ou um array??

Porque você tem que declarar uma variável de tipo t.Não adianta só definir ela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o que ele quer é pegar aquela stringzona dele e "popular" uma struct com os dados lá... estou sem idéias por enquanto mas se vier alguma à minha cabeça postarei.

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.