Devi convertire la stringa dal tipo 'AnsiString' a 'char*' con il 'c_str()'Originariamente inviato da SDB
ciao a tutti...
ho un problrma..
ho una funzione che come argomento vuole un vettore di char, tipo:
vorrei passre questo vettore direttamente da un Edit ,tipo:codice:char *mio = "(12,13,14)";
ma naturalmente non lo accetta..dovre in qualche modo convertirlo..come poso fare??codice:char *mio = Edit->Text; funzione( mio);![]()
![]()
grazie..ciao..
La descrizione dall' help del C++ Builder :
Quindi Puoi fare :AnsiString::c_str() returns a non const temporary pointer to the internal string buffer in the AnsiString object. The pointer is invalid once the statement in which it is used has finished executing. That is,don't do something like this:
char* cp = Edit1->Text.c_str();
char* cp2 = strtok( cp, " \t\n" ); // cp may no longer be valid
If you need a persistent pointer, you MUST copy the string into its own buffer:
char* cp = new char[ Edit1->Text.Length() + 1 ];
strcpy( cp, Edit1->Text.c_str() );
Se hai bisogno di un puntatore 'persistente'codice:char *mio = new char[ Edit->Text.Length() + 1 ]; strcpy( cp, Edit->Text.c_str() ); funzione( mio );
altrimenti :
codice:funzione( Edit->Text.c_str() );

Rispondi quotando