C++ Frage

Post Reply
Message
Author
hunter

C++ Frage

#1 Post by hunter »

Hallo,

ich habe ein char array mit 5000 Elementen. (festes)
Ich habe eine Adresse, z.B. 0x200 und möchte mein char am dem 1000. Element auf 0x200 abbilden.
Der Rest von 0x200 (da ja nur 4000 Elemente abgebildet wurden) sollen genullt werden.

So dieses Problem kann ich wohl ohne eure Hilfe nicht Lösen.
Bitte also um Hilfe :)

cu,

hunter

P.S.: Ich habe an sowas wie memcpy gedacht, aber weis nicht wie man es in C++ machen könnte

Descartes

Re: C++ Frage

#2 Post by Descartes »

> ich habe ein char array mit 5000 Elementen. (festes)
also so etwas:

char meinArray[5000];

> Ich habe eine Adresse, z.B. 0x200
> und möchte mein char am dem 1000. Element auf 0x200 abbilden.

Und wer sagt, dass du auf diese Adresse zugreifen darfst/kannst? Das Betriebssystem teilt dir (bzw. deinem Programm) *einen* Speicherbereich zu. Wo genau der liegt kann, darf und muss dir egal sein.



> Der Rest von 0x200 (da ja nur 4000 Elemente abgebildet wurden) sollen genullt werden.

Wenn du ab Element 4000 an alles alles genullt haben möchtest vielleicht etwas das entfernt wie folgendes aussieht:

char meinArray[5000];

char* c = &meinArray;
for (i+=0x200; i<5000; ++i) *c=NULL;

Keine Gewähr, dass das obige Code Stück nicht core dumped oder sonst irgendwie funktioniert. Bin grad von der Arbeit gekommen und dementsprechend noch gaga ;*)

rattengift

Re: C++ Frage

#3 Post by rattengift »

meinst du etwa sowas?
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
char array [5000];
char * dest = ??? (malloc?)

memcpy (dest, array + 1000, sizeof array - 1000);
memset (dest + sizeof array - 1000, 0, 1000);
</font><hr></pre></blockquote>

Post Reply