|
|
|
![]() |
|
Strumenti |
![]() |
#1 | ||
Member
Iscritto dal: Oct 2007
Messaggi: 55
|
[C]Problema con realloc
Salve a tutti, ho incontrato un problema strano nella scrittura di un programma. Il programma legge dei predicati da un file di testo, <origine> <destinazione> fatto nel modo seguente:
input.txt Quote:
Quote:
|
||
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
Mmm non è che in realtà volevi scrivere:
Codice:
(tmpsc->nori+2)*sizeof(char*) Non ho letto tutto il codice, solo la riga incriminata ma mi sembra strana una realloc fatta in questo modo. Cosa rappresenta nori? Lo spazio che vuoi allocare deve essere sufficiente a contenere cosa? |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Oct 2007
Messaggi: 55
|
tmpsc->ori=(char**)realloc(tmpsc->ori, tmpsc->nori+2*sizeof(char*));
tmpsc->ori è un puntatore a int che voglio ridimensionare, nella sintassi di realloc questa è l'area di memoria che si vuole ridimensionare, questa è la nuova dimensione, che corrisponde al numero di "origini" del predicato corrente, cioè il numero di predicati che da cui dipende tmpsc->dest, il resto si capisce. Ho fatto un altro programma dopo che richiedeva lo stesso tipo di realloc, e anche li mi dava problemi col debug, ma funzionava perfettamente in esecuzione normale. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
Non capisco quel +2*, non dovrebbe essere semplicemente nori*sizeof(char*) ? Anzi, visto che nori non l'hai ancora incrementato dovrebbe essere (nori+1)*sizeof(char*)
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:11.