"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

C Anfänger kommt nicht weiter

noir 25.11.2012 - 22:47 6510 32
Posts

icy

OC Addicted
Registered: Dec 2002
Location: :-)
Posts: 689
Sollte gehen, am besten mit zb. diffFork drueber schauen.

http://pastebin.com/ZhSQpkiL
Bearbeitet von icy am 10.03.2013, 21:08

noir

Overclocking Team Member
Avatar
Registered: Dec 2007
Location: Salzburg/OÖ
Posts: 2311
gleich nochmals danke für eure Hilfe und Tipps

ganz verstanden hab ich das zwar noch nicht, aber
bei der Version von icy hab ich gesehen wo mein Fehler war und das Funktioniert dann auch
Sprich ich speichere das Lokale Array in ein Globales und greife darauf dann über einen Pointer zu. Funktioniert, scheint mir aber sehr umständlich zu sein

Dem Ansatz von Caption konnte ich nicht umsetzen
(da werde ich nur so mit Fehlern überhäuft)

Ich werde es euch wissen lassen sobald ich es zusammengebracht habe

Danke nochmals

icy

OC Addicted
Registered: Dec 2002
Location: :-)
Posts: 689
ptr[0] = i[0];

Was passiert hier?
Wir speichern den Wert von i[0] in ptr[0].

Warum?
Weil sonst i[0] bzw. der Wert von i[0] verloren geht. (scope)
Du koenntest natuerlich direkt die Werte in dein globales Array speichern (wenn du sie beim ersten mal einliest).

////////////////////////////////////////////////////////////////////////////////////

bin3 = *(ptr+2) * zweierpotenz;

Was passiert hier?
Wir dereferenzieren(der Stern *) die Pointer Adresse (ptr+2) und bekommen dadurch den Wert von der Pointer Adresse.

Man haette natuerlich auch sofort ptr[2] schreiben koennen.

////////////////////////////////////////////////////////////////////////////////////

Am besten ausprobieren:
printf("pointer address %p\n", (ptr+0));
printf("integer %i\n", *(ptr+0));

Pointer Uebergabe(caption):
http://pastebin.com/j1RVmWCg
Bearbeitet von icy am 12.03.2013, 17:02
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz