|
|
|
![]() |
|
Strumenti |
![]() |
#21 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
![]() ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
![]() |
![]() |
![]() |
#22 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
che poi scusa ma i metodi push e pop li vedo meglio con l'inserimento in testa dato che alla fine di solito gli stack si gestiscono in modo LIFO
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
![]() |
![]() |
![]() |
#23 | |
Member
Iscritto dal: Aug 2004
Messaggi: 156
|
Quote:
|
|
![]() |
![]() |
![]() |
#24 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
![]() ![]() ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
![]() |
![]() |
![]() |
#25 |
Member
Iscritto dal: Aug 2004
Messaggi: 156
|
non ho capito come vuoi fare la reverse.
|
![]() |
![]() |
![]() |
#26 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
![]() ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
![]() |
![]() |
![]() |
#27 |
Member
Iscritto dal: Aug 2004
Messaggi: 156
|
ma così avresti comunque una complessità O(n). o no?
|
![]() |
![]() |
![]() |
#28 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Che macello, 'sta dicussione sta diventando troppo tecnica.
![]() Aggiorno: con le varie soluzioni che mi avete dato (a parte quelle con i prototipi modificati, che non ho provato) sembra che l'aggiunta vada bene, ma quando accedo a dei campi di ptvoce all'interno del database ho un segmentation fault, mentre con il codice che vi avevo postato all'inizio il segmentation fault sparisce, ma la lista risulta composta da un solo elemento. Boh! ![]()
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#29 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
![]() |
![]() |
![]() |
#30 | |
Member
Iscritto dal: Aug 2004
Messaggi: 156
|
Quote:
|
|
![]() |
![]() |
![]() |
#31 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Grazie delle risposte, alla fine sono riuscito a risolvere quel problema, ma ora ne ho un'altro molto strano: ho due variabili che vengono allocate l'una dopo l'altra, ma quando provo a realloc()arle, solo la prima malloc()ata viene ridimensionata senza problemi, l'altra causa un segmentation fault. Vi posto il codice:
Codice:
int registraArchivio(FILE* uscita, elem* db) { char str[RECLEN]; int num = 0; char * dest; char * temp; while (db) { if (vocetorec(str,db->ptvoce) != 0) return -1; if (num == 0) { temp = malloc(RECLEN); dest = malloc(RECLEN); strcpy(dest, str); } else { realloc(temp, num*RECLEN); strcpy(temp, dest); realloc(dest, (num+1)*RECLEN); sprintf(dest, "%s\n%s", str, temp); } num++; if (!db->next) break; db = db->next; } fprintf(uscita,dest); free(dest); free(temp); return num; }
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#32 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
up
![]()
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#33 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
1) per correttezza va fatto il cast su MALLOC
2) realloc ritorna il puntatore del nuovo spazio su su il caldo ti sta dando alla testa ![]() ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
![]() |
![]() |
![]() |
#34 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
2) ma modifica anche lo spazio del primo puntatore. ![]() Vi posto il nuovo codice e test che ho fatto con gdb: Codice:
int registraArchivio(FILE* uscita, elem* db) { char str[RECLEN]; int num = 0; char * dest = NULL; fprintf(stderr,"-> registraArchivio();\n"); while (db) { /* Se vocetorec() fallisce, usciamo con un errore */ if (vocetorec(str,db->ptvoce) != 0) return -1; fprintf(stderr,"\tnum = %d;\n", num); fprintf(stderr,"\t- str = \"%s\";\n", str); if (num == 0) { dest = malloc(RECLEN); strcpy(dest, str); } else { char * temp = NULL; fprintf(stderr,"\t- duplicating dest in temp memory;\n"); temp = strdup(dest); fprintf(stderr,"\t- reallocating dest memory;\n"); realloc(dest, (num+1)*RECLEN); fprintf(stderr,"\t- copying dest memory;\n"); sprintf(dest, "%s\n%s", str, dest /* temp */); fprintf(stderr,"\t- freeing temp memory;\n"); free(temp); } fprintf(stderr,"\t- dest = \"%s\";\n", dest); /* Incrementiamo il numero di voci scritte */ num++; if (!db->next) break; db = db->next; } fprintf(stderr,"\tsaving;\n"); fprintf(uscita,dest); fprintf(stderr,"\tfreeing memory;\n"); free(dest); fprintf(stderr,"<- registraArchivio();\n"); return num; } Codice:
Prima di allocare "dest": -- (gdb) print dest $1 = 0x6 <Address 0x6 out of bounds> -- Dopo aver impostato "dest" a NULL: -- (gdb) print dest $2 = 0x0 -- Dopo aver allocato "dest": -- (gdb) print dest $3 = 0x804b398 "¸Ùü·¸Ùü·ÿÿÿÿ" -- Prima di allocare "temp": -- (gdb) print temp $4 = 0xffffffff <Address 0xffffffff out of bounds> -- Dopo aver impostato "temp" a NULL: -- (gdb) print temp $5 = 0x0 -- Provando ad allocare "temp" attraverso strdup(): segmentation fault. :(
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
![]() |
![]() |
![]() |
#35 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
ehm realloc serve a reallocare ma se non ci sta dove è allocato quello di partenza PER FORZA cambia indirizzo e
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
![]() |
![]() |
![]() |
#36 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
![]() |
![]() |
![]() |
#37 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
![]() |
![]() |
![]() |
#38 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
Codice:
realloc(dest, (num+1)*RECLEN); ![]()
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
![]() |
![]() |
![]() |
#39 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
![]() ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
![]() |
![]() |
![]() |
#40 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
hai provato?
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:12.