|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 607
|
C++ - Strano problema...Aiuto!!
Ecco la funzione membro di una classe che mi sta facendo impazzire:
class ordina{ ... char *str, *str1; ... ordina(){str = str1 = 0;}; } void ordina::init(){ //ordina_elem vale 100000 if (!str) { str = new char ((ordina_elem + 1) * sizeof(char)); } strcpy (str, ""); int x = 0; while (x != ((ordina_elem / 1000) -1)){ //str 1000 è una stringa di 1000 caratteri strcat (str, str1000); x++; }} in pratica deve allocare memoria per 100000 caratteri e poi scriverci sopra 99 volte una stringa da 1000 caratteri. La funzione che richiama il tutto è: int f(){ int errori = 0; ordina prova; prova.init(); return errori; } Non è un problema di compilazione. La cosa strana è che se io chiamo f la prima volta va tutto ok, ma la seconda mi da errore windows Ogni consiglio è ben accetto, compreso un diverso approccio al problema
__________________
Flickr |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Prova così:
str = new char [ordina_elem + 1]; Ricordati di chiamare la delete[] nel distruttore... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:53.



















