Ben al een tijdje bezig met een wat groter programma maar één elementeer deel wil gewoon niet werken. Probleem is heel klein en simpel maar ik zal er toch maar even een stukje er bij vertellen:
Ik ben dus bezig met een programma dat een (eendimensionale) array binnen krijgt en een waarde x die aangeeft op welke locatie hij precies de waarde kan vinden waar hij enkele berekeingen mee moet uitvoeren. Nu lukt eigenlijk alles behalve het "rekenen" met de pointer. Om het probleem te isoleren heb ik de simpelste implimentatie van het probleem geschreven:
Zoals te zien is verhoog ik de pointer dus met 5 en dus zou -althans, zo was mijn verwachting -ik eigenlijk op 6 uit moeten komen. Maar dit gebeurt niet en ik krijg alleen een 1 te zien.
Mijn compiler (Visual Studio 2k5) geeft wel een warning: "warning C4552: '+' : operator has no effect; expected operator with side-effect". Maar ik snap niet wat ik fout doe (ook met Google kon ik het niet vinden).
Dus wat doe ik nou precies fout? Want ik snap het echt niet meer, ook in een boek ("Aan de slag met C++") staat het zo uitgelegd, die hebben het dus ook fout
Ik ben dus bezig met een programma dat een (eendimensionale) array binnen krijgt en een waarde x die aangeeft op welke locatie hij precies de waarde kan vinden waar hij enkele berekeingen mee moet uitvoeren. Nu lukt eigenlijk alles behalve het "rekenen" met de pointer. Om het probleem te isoleren heb ik de simpelste implimentatie van het probleem geschreven:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #include <iostream> using namespace std; void main( void ) { int Larray[ 25 ] = {1,2,3,4,5,6,7, }; int *p = Larray; int x = 5; p + x; cout << *p; cin.get(); } |
Zoals te zien is verhoog ik de pointer dus met 5 en dus zou -althans, zo was mijn verwachting -ik eigenlijk op 6 uit moeten komen. Maar dit gebeurt niet en ik krijg alleen een 1 te zien.
Mijn compiler (Visual Studio 2k5) geeft wel een warning: "warning C4552: '+' : operator has no effect; expected operator with side-effect". Maar ik snap niet wat ik fout doe (ook met Google kon ik het niet vinden).
Dus wat doe ik nou precies fout? Want ik snap het echt niet meer, ook in een boek ("Aan de slag met C++") staat het zo uitgelegd, die hebben het dus ook fout