Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Inhalt von Zeiger-Array 1 in Zeiger-Array 2 kopieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.10.2005, 20:36 Uhr
~ch
Gast


hi,
Ich habe zwei Zeiger:

C++:
unsigned char* dataRGB = (unsigned char*) malloc(    (sizeof(*m_char_buffer)/4 * 3)/ sizeof(unsigned char)    );



C++:
unsigned char *m_char_buffer;



Nun möchte ich beispielsweise den Wert von m_char_buffer[x] dataRGB[y] zuweisen...
Wie geht das:

C++:
*(dataRGB[ x]) = *(m_char_buffer[ y]);


oder

C++:
dataRGB[ x] = m_char_buffer[ y];


oder

C++:
*dataRGB[x] = *m_char_buffer[ y ];


Ich möchte nicht, dass dataRGB später auf einen Wert von m_char_buffer zeigt (also quasi nicht so etwas wie eine Referenz)
dataRGB[x] soll wirklich eine kopie von m_char_buffer[y] , denn m_char_buffer soll später andere Werte erhalten, die mit Data RGB nichts (!) zu tun haben.
(Beispielweise hat m_char_buffer die Adresse 0xFF00FF und den Wert 7, dann soll dataRGB eine andere Adresse zb, 0xFFFF00 haben aber auch den Wert 7)

Ich denke es ist unwichtig, aber es wird nicht NEW und DELETE sondern MALLOC und FREE benutzt. (obwohl C++)

Danke für die Hilfe,
Christian Hirche
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.10.2005, 21:13 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Ich steig noch nicht so ganz durch was du machen willst aber zum umgang mit malloc...

wenn du also ein Feld der Größe n für den Datentyp Typ allokieren willst dann z.B. so...


C++:
Typ *zeiger = (Typ*) malloc(sizeof(Typ)*n);



mit dem * kannst du einen zeiger dereferenzieren... (also auf den inhalt auf den der Zeiger zeigt zugreifen...

z.B.

C++:
int *x;
printf("%d",*x); //würde in dem Fall ziemlich schief laufen da der Zeiger noch ins nirwana zeigt... aber prinzipiell so. Damit der zeiger nicht mehr ins nirvane zeigt musst du ihn auf etwas "zeigen" lassen. Also entweder auf einen bereits existierenden Speicherbereich der dir gehört oder aber du forderst selber speicher an auf den der Zeiger verweist. Dies kannst du wie bereits oben gezeigt mit malloc machen...



der []- Operator dereferenziert bereist schon du musst und darfst keinen stern mehr davor packen..


C++:
pointer[x]...
//ist das gleiche wie
*(pointer+x)...



um ein array zu kopieren (ich vermute mal stark das willst du machen nachdem du den speicher allokiert hast) kannst du memcpy verwenden...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 26.10.2005 um 21:14 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: