[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
RE: Alocação
- Subject: RE: Alocação
- From: Yoshiharu Kohayakawa <yoshi@ime.usp.br>
- Date: Tue, 18 Jun 2002 10:52:26 -0300
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.
- References:
- Alocação
- From: Camila de Almeida <camila@cecm.usp.br>