Pointer

3Cyb3r

Erfahrenes Mitglied
So hi ich habs nicht so mit Pointern

Code:
int* gl_commands = glcmds;
while (int i = *(gl_commands++))
ist diel letzte Zeile sinnlose? Falls nicht was macht sie?
Dort bekomme ich auch ein Speicher Fehler.
Naja den Code hab ich ausm i-net. Oder braucht ihr mehr infos?
Also wenn schon == sonst ist es ja eine Endloseschleife.
 
Hi.
So hi ich habs nicht so mit Pointern

Code:
int* gl_commands = glcmds;
while (int i = *(gl_commands++))
ist diel letzte Zeile sinnlose? Falls nicht was macht sie?
Nein, die Zeile ist nicht sinnlos. (war ja klar, oder?! ^^)

Offenbar ist glcmds ein Array.

In der Schleife wird dann der Zeiger solange auf das nächste Element des Array verschoben, bis der Wert auf den der Zeiger zeigt (welcher gleich an die Variable i zugewiesen wird) 0 ist.
Dort bekomme ich auch ein Speicher Fehler.
Mehr Infos.

Gruß
 
Hm sollte gehen ... wenn irgendwo ne 0 in deinem array steht ... Wenn du es so schreibst:
C++:
int* ptr_begin(ptr_array);
int* ptr_end (ptr_array + size_array);

for (int* ptr_it(ptr_begin); ptr_it != ptr_end; ++ptr_it)
    int i = *ptr_it;
dann gehts auf jedenfall ...
 
Ok ich wollte es eben nochmal tetsen so wie es war un es funktioniert einwandfrei ohne speicher fehler. Das lag irgendwo anders dran. Trotzdem Danke
 
Zurück