Forum: PC-Programmierung pointer auf Adresse


von Felix (Gast)


Lesenswert?

Mahlzeit,
ich möchte mir werte von einem Adressbereich holen. Dazu habe ich eine 
Funktion, die die Adresse als Pointer haben möchte.
Für eine einzelne Adresse funktioniert das auch ganz gut.
1
for(counter=0; counter<length; counter++)
2
{
3
  memory_get_data(&buffer, &startAddress);
4
}

hier wird mir der wert, welcher in startAddress steht in buffer 
geschrieben.

1
for(counter=0; counter<length; counter++)
2
{
3
  memory_get_data(&buffer, &(startAddress+counter));
4
}
Das funktioniert aber nicht, da (startAddress+counter) ein ergebnis ist 
und keine Adresse mehr.

Wie kann man es am besten machen?

von Erik (Gast)


Lesenswert?

(&startAddress) + counter ?

von Erik (Gast)


Lesenswert?

Nachtrag:
Ist aber Dreck, da es abhängig davon ist wie breit dein Datum ist.
Müsstes also n*counter machen.

oder gleich richtig:

<datentyp> * ptr = &startAddress;

ptr + counter

von Yalu X. (yalu) (Moderator)


Lesenswert?

Felix schrieb:
> for(counter=0; counter<length; counter++)
> {
>   memory_get_data(&buffer, &startAddress);
> }

Sind da nicht ein paar &-Zeichen zuviel?

Welchen Datentyp haben buffer und startAddress?

Und wie sieht die Funktion memory_get_data aus?

Davon hängt es ab, wie der Aufruf von memory_get_data tatsächlich
aussehen muss. Evtl. ist auch einfach
1
  memory_get_data(buffer, startAddress);
2
  memory_get_data(buffer, startAddress+counter);

der richtige Weg.

von GEKU (Gast)


Lesenswert?

Felix schrieb:
> memory_get_data(&buffer, &startAddress);

wie wäre es mit einem dritten Parameter :

          memory_get_data(&buffer, &startAddress, block_size);

von GEKU (Gast)


Lesenswert?

GEKU schrieb:
> memory_get_data(&buffer, &startAddress, block_size);

Sorry ich habe übersehen, das die Funktion memor_get_data vorgegeben 
ist.

Interessant wäre der Prototyp der Funktion.

Z. B.   void memory_get_data(char *pBuffer, int startAddress);

dann wäre Startaddress kein Zeiger, sondern ein Adresswert,  der kein & 
benötigt. Man könnte man counter ohne weiters dazuzählen, da counter 
ebenfalls vom Typ int ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.