CodeGear RAD Studio



  • Wie im der Titel schon sagt habe ich den CodeGear RAD Studio Compiler.
    Dazu habe ich folgende Frage. Wenn ich mit ein char versuche zu Konvertieren kommt die Meldung das const char* nicht Konvertier bar sei. Kann mir das jemand Erklären?



  • Die Frage müsstest du etwas präzisieren. Eine Variable (char) in einen Pointer (char*) konvertieren geht nicht, höchstens mittels Adress-Operator den Wert kopieren. Falls du einen Funktionsaufruf, welcher einen Pointer erwartet, mit einer Variablen fütterst, kann der Compiler nicht den Variablentyp ändern.

    Gruß



  • Was möchtest du nach was konvertieren?

    Aber mal allgemein:
    char c1[] = "Teststring";
    ist das selbe wie
    char* c2 = "Teststring";

    Das erste Element des char-Array ist lediglich eine Adresse zum Speicherbereich des Strings (normalerweise ist das Ende 0-terminiert).
    Somit ist die Zuweisung &c1[0] = &c2[0] zwar legitim, doch wird einfach nur die Startadresse von c2 an c1 übergeben. Wenn c2 ein const char* wäre, ist das nicht mehr machbar, da die Startadresse von c1 veränderbar ist.

    Somit solltest du kopieren:
    _lstrcpy(c1, c2);

    Fehler sind möglich und Irrtümer sind vorbehalten 😉



  • Was hat das Problem mit dem CodeGear-Compiler zu tun? Und wenn du willst, dass dir geholfen wird, musst du genauer werden. Ein Code-Schnippsel wäre gut.



  • Du beschreibst deinen Fehler und womöglich den falschen Weg. Vielleicht solltest du dein Ziel erläutern?! Dann kann man dir den richtigen Weg zeigen.


Anmelden zum Antworten