[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

RE: Alocação



Camila de Almeida wrote (on Tuesday, 18 Jun 2002, at 10:41:39 -0300):
 > Olá, 
 > 
 > Estou tentando fazer o seguinte: tenho uma estrutura de dois campos que
 > guarda dois strings. Tenho um vetor de estruturas e agora gostaria de
 > alocacar dinamicamente um vetor de ponteiros para este vetor de
 > estruturas. 
 > 
 > No meu programa, Item é um ponteiro para a estrutura.
 > 
 > Então no main tento fazer o seguinte:
 > 
 > Item *a=malloc(N*sizeof(Item));
 > 
 > Bom, primeiramente eu tenho a dúvida.. porque devo escrever *a, se Item já
 > é um ponteiro? 
 > Já tentei fazer de várias formas e na hora de compilar só aparece o
 > warning:
 > 
 >  warning: initialization makes pointer from integer without a cast
 > 
 > Não consigo entender o erro...

Aqui está um exemplo seguindo o que voce diz:

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

typedef int *Item;

int main(int argc, char* argv[])
{
  int i, N=atoi(argv[1]);
  Item *a=malloc(N*sizeof(Item));
  int b[100];

  for (i=0; i<N; i++)
    b[i]=i*i;

  for (i=0; i<N; i++) 
    a[i]=&b[i];
    
  for (i=0; i<N; i++)
    printf("%d ", *a[i]);

  printf("\n");

  return 0;
}
/************************************************************/

O está em outro lugar...?  Y.