Ho this code che funziona come previsto:Come memorizzare un const char * in un char *?
#define MAX_PARAM_NAME_LEN 32
const char* GetName()
{
return "Test text";
}
int main()
{
char name[MAX_PARAM_NAME_LEN];
strcpy(name, GetName());
cout << "result: " << name << endl;
}
Se mi piacerebbe memorizzare il risultato a un char *
(perché alcune funzioni all'interno di un framework che sto utilizzando l'uso solo char *
come input) senza utilizzare il strcpy
(per praticità e leggibilità del codice e apprendimento), come potrei fare? Tenendo in const
, questo funziona bene:
const char* name;
name = GetName();
ma ho ancora const
.
Cercando di utilizzare solo char*
:
char* name;
name = GetName();
ottengo invalid conversion from 'const char*' to 'char*'
. Qual è la migliore abitudine per questo tipo di conversione?
Cosa vuoi fare? Se non vuoi cambiare la stringa, il primo idioma ti serve e non usa memoria extra; se vuoi cambiare la stringa devi copiare il suo contenuto altrove (quindi hai bisogno di strcpy o simili). – SJuan76