Jump to content


Photo

Malloc E Struct


  • Faça o login para participar
1 reply to this topic

#1 Dusse

Dusse

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 21/11/2008, 11:32

Ola galera,
necessito fazer algo do tipo:

struct node{
int a;
char *s;
};

void main()
{
node *x;
int sMAX = 3;
int nodeMAX = 10;
...
x = (node*)malloc((sizeof(int)+sizeof(char)*sMAX)*nodeMAX);
...
}

em outras palavras quero alocar dinamicamente o tamanho de nodes e tb o tamanho da string s dentro de node

tentei de tudo:

x = (node*)malloc((sizeof(node)*nodeMAX);
x = (node*)malloc((sizeof(struct node)*nodeMAX);
x = (node*)malloc((sizeof(node)+sizeof(char)*sMAX)*nodeMAX);

..

sempre dando erro de execução..
é possivel fazer o q eu quero em C?

[]´s

#2 ffmm

ffmm

    Veterano

  • Usuários
  • 1224 posts
  • Sexo:Não informado

Posted 21/11/2008, 12:12

int i;
x = (node *) malloc(sizeof(node) * nodeMAX);
for (i = 0; i < nodeMAX; i++)
{
	  (x+i)->s = (char *) malloc(sizeof(char) * sMAX);
}
Creio que seja assim para fazer o que você quer. Primeiro deve-se alocar a memória para as nodeMAX structs, e depois, pra cada struct que foi alocada, alocar sMAX chars pro campo s da struct.




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq