Invalid conversion from ‘const char*’ to ‘unsigned char*’

Un simple code C++:

int main(){
unsigned char* t="123";
}

sur la compilation avec g++ donne l'erreur suivante:

invalid conversion from const char*’ to unsigned char*’ [-fpermissive]

Pourquoi?

Parce qu'un littéral de chaîne est const.
Merci. Alors, comment le résoudre? Outre l'utilisation de std::string
Et oui, si c'est une chaîne littérale, gcc ne donne pas d'erreur sur ce point.
Si vous voulez dire que l'utilisation d'un compilateur C ne donne pas une erreur, c'est (en partie) parce que, dans C , "123" a type char[4] alors qu'en C++, elle est de type const char[4]. gcc , si ce n'est invoquée dans le mode standard, permet également la conversion entre les char * et unsigned char * sans un casting

OriginalL'auteur anupamD | 2015-12-26