estrutura!

1. estrutura!

Andi
upc0d3

(usa Gentoo)

Enviado em 04/02/2007 - 17:28h

cara, tem como colocar um "NULO" em uma estrutura? exemplo:

struct cadastro cad[10];

for(int i=o;i<10;i++){
scanf("%d",&num);
cad[i] = num; /* Vare a matriz da estrutura se encontar o indice igual ao numero */

cad[num] = '{TTEXTO}'; \\assim que se coloca um NULO;
cad[num] = NULL; \\ou é assim ??

bom seguinte a ideia eh assim a estrutura tem alguns campos, eu imagino que se eu colocar um nulo no indice da matriz da estrura ela apague tudo que tem nos campos dakela estrutura, tipo um sistema de cadastramento com uma função para remover um cadastro ????

entenderam a minha ideia ? bom se puderem me ajudar agradeço... vlww....

OBS: andiroots@bol.com.br = esse eh o meo e-mail se alguem naum entendeu direito a minha idea mi mandem um e-mail perguntando..

ateh+++++
abraço a todos!!!!!!!!!!


  


2. Re: estrutura!

Gabriel Camargos
arcanjo_mg

(usa Debian)

Enviado em 09/02/2007 - 18:12h

Olha, se sua variavel do tipo estrutura que declarou for um ponteiro, basta voce atribuir NULL para este apontar para null, como o voce declarou um vetor e este é um ponteiro por natureza, acredito que funcione, mas lembre-se, se voce aterrou o ponteiro, voce nao deve tentar acessa-lo sem antes testar se este é ou nao nulo.


3. Re: estrutura!

Thiago Rodrigues
tralsl

(usa Debian)

Enviado em 23/02/2007 - 10:52h


Imagino que vc keira dizer que campos da estrutura indique que o seu vetor é apenas um ponteiro para essa estruct
vc pode fazer o que o amigo de cima falow, aterrar o ponteiro, no seu caso uma posição do array,
mas as posições de memória da sua estruct vão continuar ocupadas mas sem nenhum ponteiro, a naum ser que vc tenha feito feito outro ponteiro anteriormente
como naum existe um coletor de lixo em C/C++ como em java, essa posição da memória só vai ser liberada ao termino do programa ou da função
espero poder ter ajudado :)
e boa programação p/ vc


4. Re: estrutura!

Thiago Rodrigues
tralsl

(usa Debian)

Enviado em 23/02/2007 - 11:01h

Bom eu ainda posso acrescentar que no caso de vc ter alocado memória dinâmicamente usando MALLOC para a estrutura, vc pode liberar toda estrutura dando um free(cad(num)) //free(ponteiro p/ struct)
depois disso o ponterio vai apontar para uma posição de memória que esta livre poi o compilador a liberou para usa de qq programa
por isso é aconselhavel q vc aterre esse ponteiro,"cad(num)=NULL;" ou faça ele apontar para outro lugar
no final do programa ou função a posição tbm vai ser liberada para uso do SO.


5. Não sei se ajuda

Diego da Silva de Medeiros
diegotosco

(usa Slackware)

Enviado em 17/03/2007 - 10:30h

Mas se o objetivo é apagar um cadastro, a sua estrutura poderia possuir um flag, em que, caso fosse 0, indicaria cadastro apagado; 1 indicaria cadastro ativo. Com isso seu programa poderia possuir recursos como recuperação de cadastros excluidos.
Essa idéia veio tendo em vista que você está usando um vetor de estruturas, e não uma lista ligada. Assim, se você colocar um NULL na estrutura, você estará somente apagando os DADOS que ela armazena, e não liberando a MEMÓRIA que ela ocupa. Então se é para ela ficar ocupando memória armazenando NULL, que fique ocupando memória armazenando os dados antigos.

Espero que ajude em alguma coisa.
Falô






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts