Ungültige Konvertierung von 'const char*' in 'unsigned char*'

Einem einfachen C++ code:

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

auf compilation mit g++ gibt folgenden Fehler:

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

Warum?

  • Weil ein string-literal const.
  • Danke. So, wie es zu lösen? Abgesehen von der Verwendung von std::string
  • Und ja, wenn es string-Literale, die der gcc nicht geben Fehler auf, die.
  • Wenn du meinst, dass mit einem C-compiler keinen Fehler, das ist (teilweise) da in C "123" Typ char[4] in der Erwägung, dass in C++ hat den Typ const char[4]. gcc , wenn nicht aufgerufen werden, im standard-Modus, ermöglicht auch die Konvertierung zwischen char * und unsigned char * ohne cast
  • const unsigned char* tmp= reinterpret_cast<const unsigned char *>( "123" ); t = const_cast<unsigned char *>(tmp).
InformationsquelleAutor anupamD | 2015-12-26
Schreibe einen Kommentar