Hallo Leute, ich habe eine doppelzeiger. Die sollen auf eine iht zeiger zeigen wie folgt:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
Es wäre sehr nett, wenn ihr mir sagen könnte wie ich in diesem Falls scheriben soll
|
Anzeige
|
char zeiger auf int zeigerHallo Leute, ich habe eine doppelzeiger. Die sollen auf eine iht zeiger zeigen wie folgt:
Es wäre sehr nett, wenn ihr mir sagen könnte wie ich in diesem Falls scheriben soll
Gast
#1245601
Carolin Zapa wrote: > int array[10]; > int *ptr; > char **dptr; > > ptr = array;// ptr zeige auf array Nee, er zeigt auf einen Vektor, das is (manchmal) was Anderes. > // so habe ich mir gedacht aber dann bekomme ich Fehlermeldung. > dptr = (char)&ptr; Was soll das denn werden?
was du damit vorhaben könntest, bleibt mir allerdings irgendwie verborgen... Carolin Zapa wrote: > Es wäre sehr nett, wenn ihr mir sagen könnte wie ich in diesem Falls > scheriben soll Hmm. Das was du da vorhast, ist ziemlich sinnfrei. Scheint so, als ob dich die Sprache bzw. der Compiler vor einer Dummheit bewahrt. Also: Was hast du eigentlich vor? Wozu brauchst du das Ganze? ich habe ein int32 array[10] und er hat ein int32 ptr zu testen. Nach dem Test wollte ich das mit TCP senden. Die send funkt versteht aber nur send(socket, char*, length). Also habe ich mir gedacht dass ich ein doppelpointer benutzen kann in diesem fall. Gruß, Carolin ohne garantie und test, könnte funktionieren:
sonst musst du nur einen weg finden, einen int32 in ein char-array zu zerlegen und wieder zusammenzusetzen. (tipp: etwas ähnliches wurde in letzter zeit hier im forum diskutiert)
Gast
#1245673
Je nach C-Standard: Einfach casten:
Oder einfach übergeben:
Als es noch kein void gab, war char der 'Alles'-Typ, daher gehts mitunter ohne Cast. Sinnvoller wärs allerdings, Byte-Order-Kram zu benutzen, sonst versendest du Datenmüll. So von wegen htonl und umgekehrt. Carolin Zapa wrote: > ich habe ein int32 array[10] und er hat ein int32 ptr zu testen. Nach > dem Test wollte ich das mit TCP senden. Was wolltest du senden? Das int Array? > Die send funkt versteht aber nur send(socket, char*, length). Sieh das char* in diesem Fall als: "Egal worauf der Pointer zeigt, ich sende von dort beginnend length Bytes" In neuerem C wäre das ein void Pointer, aber aus historischen Gründen wurde das wohl auf einem char Pointer belassen. Es spricht also nichts dagegen, das man sich den Pointer auf den Datentyp zurechtcastet, den die send Funktion haben will.
Danke für die schnelle Antworte. Die haben mir sehr geholfen. Gruß, Carolin Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|