Pointer Zeiger und Co -- ArrayPointer an eine Funktion übergeben
-
Hi Leute
Ich wollte fragen ob mir jemand erklären könnte wie ich in folgendem Code
die Daten aus anf nach end bekommeBin jetzt schon ewig am rumcasten aber bekomms nicht hin...
Vielen Dank
#include <iostream> using namespace std; void bla(int*); int main(void) { int end[128]; cout << end[0] << endl << end[1] << endl; fflush(stdin); cin.get(); return 0; } void bla(int* zw) { int anf[128] = {55,2,3,4,5,6,7}; // ? => memcpy(zw,anf,sizeof(int)); }
-
MemCPY schrieb:
Hi Leute
Bin jetzt schon ewig am rumcasten aber bekomms nicht hin...hmm warum am rumcasten?
#include <iostream> using namespace std; void bla(int *zw); int main(void) { int end[128]; int *p = end; bla(p); return 0; } void bla(int *zw) { int anf[128] = {55,2,3,4,5,6,7}; memcpy(zw,anf,sizeof(anf)); // 1. Möglichkeit memcpy(zw,anf,sizeof(int)*128); // 2. Möglichkeit }
Ohne gewähr auf Syntaxkorrektheit
einfach mal schnell im Notepad getippt.
-
Danke,
aber kann man auch einzelne Elemente kopieren?mfg
-
MemCPY schrieb:
Danke,
aber kann man auch einzelne Elemente kopieren?mfg
zw[a] = anf[b]; // a und b sind Platzhalter ;)
-
Thx
-
MemCPY schrieb:
Danke,
aber kann man auch einzelne Elemente kopieren?Hi,
na klar... aber bevor ichs vergess...cout << end[0] << endl << end[1] << endl;
... ist kein ANSI-C... cout kommt aus C++. Wenn du ein C-Programm erstellen willst, dann nimm printf().
So und nun zum einzelnen Elemente kopieren, der Pointer zw zeigt auf die Anfangsspeicheradresse des int Arrays. Du kannt dich als mit zw+n Eintrag für Eintrag durchhangeln.
void bla(int *zw) { int anf[128] = {55,2,3,4,5,6,7}; int *local_p = anf; *(zw++); // 2.ter Eintrag aus Ziel-Array *(local_p++); // 2.ter Eintrag aus Quell-Array memcpy(zw,local_p,sizeof(int)); }
@AJ: Dann isses aber ohne memcpy
-
... fflush(stdin); ...
Eingabepuffer flushen? Was soll das bringen?
-
Ja ich weiß das es kein ANSI C ist
fflush soll bewirken das nicht ein zuvor eingegebens Zeichen mit cin.get eingelesen wird
-
Undefinierte Aktionen auf C-Streams und das ganze noch bunt gemischt mit C++-Streams, so haben wir es gern