PDA

Visualizza la versione completa : [c++] uso di new


AnĒkin
19-05-2004, 13:07
Allora, vorrei sapere qual'č la forma corretta, dato che funzionano entrambe.


// "mannaggia" 9 caratteri
char *p;
p = new char [9];
strcpy(p, "mannaggia");
// vale anche per scanf()

oppure


char *p;
p = new char;
strcpy(p, "mannaggia");
// vale anche per scanf()
cioč strcpy()/scanf() allocano automaticamente la dimensione dell'array o č cmq meglio allocare preventivamente la memoria?

grazie e ciao :)

m@ximo
19-05-2004, 13:11
La prima versione č quella corretta, nella seconda credo che tu vada a sovrascrivere memoria destinata a qualke altra variabile. Inoltre strcpy (non so scanf) non alloca nuova memoria; se vuoi copiare una stringa in una nuova locazione di memoria devi usare strdup(...)

;)

AnĒkin
19-05-2004, 13:41
grazie mille :)

Loading