Hi! ---- #include <iostream> #include <string> int main() { // char nach unsigned char // *********************** // irgendwas -> irgendwas2 char* irgendwas = "Blahblah"; unsigned char* irgendwas2 = new unsigned char(std::strlen( irgendwas )); // Test-Ausgabe std::cout << irgendwas << std::endl; // Konvertieren for( unsigned int i = 0; i < std::strlen( irgendwas ); i++ ) { irgendwas2[i] = static_cast<unsigned char>( irgendwas[i] ); } // Test-Ausgabe 2 std::cout << irgendwas2 << std::endl; // unsigned char nach char // *********************** // irgendwas2 -> irgendwas3 char* irgendwas3 = new char(8); // Achtung: strlen hier nicht anwendbar for( int i = 0; i < 8; i++ ) { irgendwas3[i] = static_cast<char>( irgendwas2[i] ); } // Test-Ausgabe 3 std::cout << irgendwas3 << std::endl; return 0; } --- Bringt bei mir die Ausgabe Blahblah Blahblah Blahblah Das ist jetzt quick'n'dirty per Hand gehackt, irgendwo gibt's bestimmt eine elegantere Funktion für sowas (gibt's immer :) ). Du musst im Fall unsigned char nach char mit der Größe aufpassen. Da Du die aber in Hochkommas zuweist s[0]->setName("EinName"); kannst Du vorher die Größe ausrechnen. Zu den anderen Sachen gibt's schon genug Antworten ;) CU Martin