Newsgroup: it.comp.lang.c++
Titolo: new char[] va in loop

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
salve a tutti
mi è capitata una cosa strana: come da oggetto, una funzione mi va in
ciclo infinito su una new char[num]. da cosa potrebbe dipendere? da
notare che la stessa versione della funzione in C ha lo stesso
comportamento sulla chiamata alla malloc (num * sizeof char).
grazie
ciao
- --
~  \|/
~ -(o< -- I'm a punk, dude!
~  //\
~  V_/_
Carlo Sciolla
Linux User #372086
http://www.skuro.altervista.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - 
http://enigmail.mozdev.org
iD8DBQFCLiUYcjOfgCSFxEARAukvAJ9i+QI8hcu+iDKFECyNKxP/2cVDggCeKU80
2YhwA2OyxWQjTHziqbbUFKQ=
=Aur6
-----END PGP SIGNATURE-----

 comportamento sulla chiamata alla malloc (num * sizeof char).
posta uno spezzone di codice compilabile che riproduca il tuo problema, 
così è un po' difficile aiutarti.
-- 
si prepara direttamente nel bicchiere basso detto "tumbler basso". Tre o 
quattro cubetti di ghiaccio, aggiungere il gin, il martini rosso, il 
bitter campari e mescolare. Guarnire con una fetta d'arancia.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Fred Mammola e il Tempio di Sdenk Settemani Urrins ha scritto:
| posta uno spezzone di codice compilabile che riproduca il tuo problema,
| così è un po' difficile aiutarti.
|
purtroppo ho cambiato parecchio il codice per far funzionare il tutto...
~ mi rimane la curiosità di sapere un qualsiasi caso in cui una new può
fare questo scherzo, provo a vedere se riesco a ritrovare una vecchia
versione del programma.
grazie cmq
sku
- --
~  \|/
~ -(o< -- I'm a punk, dude!
~  //\
~  V_/_
Carlo Sciolla
Linux User #372086
http://www.skuro.altervista.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - 
http://enigmail.mozdev.org
iD8DBQFCMVafcjOfgCSFxEARAhhhAJkBdnmZj1N0tSpncTo1uF2KlIITHQCgvMlI
0UySQvDf813A1WY/VyDpCxU=
=Cbd+
-----END PGP SIGNATURE-----

 versione del programma.
Sinceramente mi sembra difficile che una new possa andare in "ciclo 
infinito". Prima di tutto, che elementi hai per dire che una new sia in 
"ciclo infinito", perchè vedevi il programma bloccato? perchè il 
programma sia bloccato in un ciclo infinito, ci vuole un ciclo da 
qualche parte, no?, altrimenti potrebbe essere qualsiasi cosa..


 fare questo scherzo,
Una chiamata a 'new' non può restare bloccata indefinitamente. Se questo
accade, può dipendere da due cose: 1) baco del compilatore, oppure 2)
errore del programmatore. (Con 'errore' intendo qualsiasi cosa che abbia
portato il programma a varcare i confini del "comportamento indefinito".)
La seconda ipotesi in generale è la più probabile. Ora, il programma dopo le
modifiche sembra funzionare, però a quanto pare non hai identificato
l'errore. Pertanto, o l'hai eliminato senza rendertene conto, oppure
l'errore è ancora lì da qualche parte. Se è vera la seconda, la situazione
in cui ti trovi adesso è peggiore di quella precedente, non migliore.
Max

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
| errore del programmatore. (Con 'errore' intendo qualsiasi cosa che abbia
| portato il programma a varcare i confini del "comportamento indefinito".)
sono sicuro anche io che il blocco dipendesse da un errore mio e solo
mio. ma non mi aspettavo che una semplice chiamata a new o malloc
potesse bloccarsi: a tutt'ora non riesco ad immaginarne le cause.
| l'errore č ancora lě da qualche parte. Se č vera la seconda, la situazione
| in cui ti trovi adesso č peggiore di quella precedente, non migliore.
non č un sw che se non funziona ci rimetto il posto di lavoro, ma
comunque hai ragione. appena (se) trovo il tempo e la voglia mi spulcio
l'assembler, non dovrebbero essere + di 2-300 linee di codice il problema...
sku
- --
~  \|/
~ -(o< -- I'm a punk, dude!
~  //\
~  V_/_
Carlo Sciolla
Linux User #372086
http://www.skuro.altervista.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - 
http://enigmail.mozdev.org
iD8DBQFCVaHYcjOfgCSFxEARAtPTAJsFsj6nCHsvhKzRDHB8KLbf6WXJAACgkrUm
w//kbZRhexr2x5YagRbhJC0=
=5V8r
-----END PGP SIGNATURE-----

 in cui ti trovi adesso è peggiore di quella precedente, non migliore.
la situazione è la stessa: l'errore è rispuntato fuori! in un punto
completamente diverso del codice, sempre su una new char[]. il loop non
è una supposizione, per rispondere a Fred: la cpu schizza al 100%, ergo
cicla infinitamente su qualcosa che evidentemente è definito all'interno
dell'implementazione della new..
sku
- --
  \|/
 -(o< -- I'm a punk, dude!
  //\
  V_/_
Carlo Sciolla
Linux User #372086
http://www.skuro.altervista.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - 
http://enigmail.mozdev.org
iD8DBQFCVb59cjOfgCSFxEARApCwAJ4y8vQOPA0hwibBzU7MA73beQFlXACgwOtS
w9pOKvgp6cyeD4tinRk46sw=
=bWqm
-----END PGP SIGNATURE-----

 
forte!! quando riuscirai a postare un pezzo di codice compilabile che 
riproduca il problema sarà sempre troppo tardi :-)


 
no =)
purtroppo non riesco a ricreare l'errore in qualcosa di compilabile...
ma mi tengo stretta la versione buggata, non si sa mai che ci riesca =)
sku
- --
  \|/
 -(o< -- I'm a punk, dude!
  //\
  V_/_
Carlo Sciolla
Linux User #372086
http://www.skuro.altervista.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - 
http://enigmail.mozdev.org
iD8DBQFCXA8tcjOfgCSFxEARAhDqAJ4ohkQLCExIfQ8bWGxRiLm+kNfzLACfUBeK
5vvtFNBj6tko9e/e5kYwAgA=
=RJT6
-----END PGP SIGNATURE-----