|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
28-08-2009, 19.02.18 | #16 | |
Guest
Messaggi: n/a
|
Quota:
|
|
28-08-2009, 19.25.44 | #17 |
Newbie
Registrato: 24-08-2009
Messaggi: 8
|
Capito, ho fatto come tu mi hai consigliato, inizializzando le stringhe con "" e usando la funzione empty, ma ora mi da "errore di segmentazione"
Il codice modificato e': Codice:
void Biblioteca::Aggiungi_volume(int quant,string titolo,string coll,int Q) { int x; int j; bool t=false; x = TrovaVolumeDaNome(titolo,Q); if ( x == -1 ) { for (j=0; j<Q && !t;j++) { if ( a[j].nomevol.empty() ) { a[j].nomevol = titolo; a[j].quantitadisponibile=quant; a[j].collocazione = coll; t=true; } } if (j==Q) cout<<"biblioteca piena.\n"; } else a[x].quantitadisponibile=(a[x].quantitadisponibile)+quant; } |
28-08-2009, 19.35.26 | #18 | |
Guest
Messaggi: n/a
|
Quota:
L'errore di segmentazione lo avrai probabilmente perché l'indice j del for supera la dimensione dell'array a e perciò va a controllare campi al di fuori "del tuo dominio" finché supera il segmento che il sistema operativo ti ha offerto. controlla bene il funzionamento del programma |
|
28-08-2009, 19.45.02 | #19 |
Newbie
Registrato: 24-08-2009
Messaggi: 8
|
Controllato e ricontrollato, anche con il debugger, e mi dà errore alla comparazione delle stringhe. ho scritto:
Codice:
int Biblioteca::TrovaVolumeDaNome (string titolo,int Q) { for (int i=0;i<Q;i++) if (titolo.compare(a[i].nomevol)==0) // qui dà errore return i; else return -1; } Codice:
void Biblioteca::Aggiungi_volume(int quant,string titolo,string coll,int Q) { int x; int j; bool t=false; x = TrovaVolumeDaNome(titolo,Q); if ( x == -1 ) { for (j=0; j<Q && !t;j++) { if ( a[j].nomevol.empty() ) { a[j].nomevol = titolo; a[j].quantitadisponibile=quant; a[j].collocazione = coll; t=true; } } if (j==Q) cout<<"biblioteca piena.\n"; } else a[x].quantitadisponibile=(a[x].quantitadisponibile)+quant; } |
28-08-2009, 19.49.51 | #20 | |
Guest
Messaggi: n/a
|
Quota:
2. controlla se l'indice i non va fuori la grandezza dell'array ps. leggi pm e se puoi allega lintero programma |
|
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Masterizzare una copia di back up del s.o. | fisiologohifi | Masterizzazione Giochi Games | 6 | 14-12-2006 17.15.20 |
RIAA: ma quale diritto di copia? | Macao | Segnalazioni Web | 0 | 20-02-2006 01.15.03 |
Copia privata, si può ??? | Macao | Segnalazioni Web | 12 | 15-10-2004 19.17.23 |
Costruttore di copia C++ | GiulioCesare | Programmazione | 8 | 01-07-2004 10.31.25 |
vecchi trucchi ma su xp? | top gun | Windows 7/Vista/XP/ 2003 | 13 | 02-03-2004 11.31.48 |