Char Array-Addresse in einen Pointer schreiben



  • Hi, Ich möchte die Addresse eines Char arrays in einen Pointer schreiben, aber ich bekomme den fehler:

    sdown/Netzwerk.h:137: cannot convert `char (*)[1024]' to `char*' in assignment
    

    Die Zeile in der Ich das machen will sieht so aus:

    strcpy(dastr, &Buffer);
    

    Was mach ich Falsch?



  • versuchs doch mal mit

    strcpy(dastr, Buffer);
    


  • sdown/Netzwerk.h:119: invalid conversion from `char' to `char*'
    

    ...



  • dann ist 'Buffer' bei dir nur ein char.
    Du solltest schon ein Array nehmen oder eben gleich std::string



  • Also deklariert/definiert (hab kein peil was hier korekkt ist...) wurde Buffer mit

    char Buffer[1024];
    

    Ist das kein Array? Giebts da ein unterschied bei chars?
    Initialiesiert wird er mit

    recvfail = ::recv(ACSocket, Buffer, (sizeof(Buffer)) , 0);
    

    , also er nimmt einen über Netzwerk gesendetetn string auf, der wird aber als void* übergeben, kann das das Problem sein?



  • also dein Buffer ist schon ok.
    Dann liegt es vielleicht doch an 'dastr'
    Also, es müsste ungefähr so aussehen:

    char Buffer[1024];
    char dastr[1024]; // oder eben char* datsr = new char[1024];
    
    // irgendwas in Buffer reinschreiben...
    
    strcpy (dastr, Buffer);
    

    So müsste das funzen.

    [ Dieser Beitrag wurde am 04.04.2003 um 15:52 Uhr von Honk editiert. ]

    [ Dieser Beitrag wurde am 04.04.2003 um 15:53 Uhr von Honk editiert. ]



  • 1. hast du das ; vor dem Kommentar vergessen ^^
    2. Ist dastr ein Parameter, und soll deshalb nicht auf einen Allokierten speicherbereich, sondern auf einen normalen CHAR Array zeigen...



  • Hallo,

    ich hoffe mal, ich hab die Frage richtig verstanden. Wenn Du die Ardesse eines chararrays in einem Zeiger speichern willst, dann ganz einfach mit '='. Die Adresse ist ja nur eine Ganzzahl.

    Bsp.

    char *zeiger = chararry;
    

    ansonsten stellt ein array ohne '[]' die Adresse des arrays dar.

    grüße Con@n



  • 1. Ich hab's jetzt hingekriegt, ich hatte beim rumprobieren die Parameterliste verhobel.
    2. Die Addresse wird bei einer Funktion als Parameter bei dem Funktionsaufruf übergeben, dieser aufruf,

    void func(char *prt)
    { /*kruscht*/ }
    func(variable)
    

    endspricht

    prt = variable.
    

Anmelden zum Antworten