PDA

View Full Version : C++ - Strano problema...Aiuto!!


Mnka
14-08-2004, 10:34
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:muro: :confused:

Ogni consiglio è ben accetto, compreso un diverso approccio al problema;)

cionci
14-08-2004, 11:30
Prova così:

str = new char [ordina_elem + 1];

Ricordati di chiamare la delete[] nel distruttore...

Mnka
14-08-2004, 12:22
Stavo usando new come la funzione malloc il C.... :muro: Con questo caldo mi si sta bruciando il cervello!!!:D

Risolto tutto...Grazie 1000:yeah: