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

Re: Ajuda



Daniel:

    Está nulo porque você, no fundo, não está criando os itens propriamente
ditos, só pointers! Eu fiquei um pouco confuso, para ser sincero, quando vi
que você definiu Item como sendo um pointer para a estrutura (e não a
própria estrutura). Assim, creio que a inicialização de Nocor também está
meio incorreta. Dê uma olhada na modificação abaixo, está funcionando bem:

Item *Nocor;
Nocor = (Item*)malloc (n * sizeof (Item)); <---- tamanho de Item, não de
Item*
for (j = 0; j < n; j++) {
Nocor [j] = (Item)malloc (sizeof(struct item));  <---- alocação da
estrutura!
Nocor [j] -> ocorrencias = 0;
}

    Obs.: não esqueça de liberar tudo o que você alocou com malloc!

Rubens

----- Original Message -----
From: "Daniel" <daniel.dominguez@ig.com.br>
To: <yoshi-mac323@ime.usp.br>
Sent: Wednesday, March 28, 2001 4:31 PM
Subject: Ajuda


Estou com um problema aqui que está me torrando a cabeça. Declarei meu item
assim:

typedef struct item {
char *palavra;
int ocorrencias;
} *Item;

e tenho uma função em ST.c assim:

void STsort (int n) /* n é a entrada do programa */
{
int i, j, k;

Item *Nocor;
Nocor = malloc (n * sizeof (Nocor));
for (j = 0; j < n; j++)
Nocor [j] -> ocorrencias = 0;
.
.
.

O problema que estou tendo é que Nocor [2] está sempre nulo,
independentemente do n ! Será que alguém pode me dar uma luz ? É super
estranho, pq na janela ele até aparece com conteúdo em Nocor [2] ->
ocorrencias...

Valeu,
Daniel