problemen met pointers

Status
Niet open voor verdere reacties.

myheroh

Nieuwe gebruiker
Lid geworden
7 jan 2006
Berichten
1
Weet iemand hoe je het volgende probleem oplost? :confused:

Code:
int functie1(...)
{
int moves[70];

functie2(moves);                                   

}

void functie2( int *moves )
{

*moves++ = blabla              // -> dit werkt (de array wordt aangepast)

functie3( moves);                 

}

void functie3(int *moves)
{

*moves++ = blabla               // -> maar hier lukt het niet meer

}

Dus Ik wil de array aan laten passen in functie2 maar die moet nog iets laten toevoegen in functie3 (enkele keren).
Maar als ik dan later kijk of het lukt zie ik dat alleen die van functie2 in de array staan.
Dus alles dat in functie3 gebeurt is niet meer aanwezig in de array...

Weet iemand wat ik fout doe?
 
Ik heb je code in een klasse gezet, en dan werkt het wel.

Code:
#include <iostream>
using namespace std;


class Functies
{
	int moves[70];
public:
	functie1();
	functie2(int * moves);
	functie3(int * moves);
	geefweer();
};

Functies::functie1()
{
	functie2(moves);
}

Functies::functie2(int * moves)
{
	*moves++ = 666;
	functie3(moves);
}

Functies::functie3(int * moves)
{
	*moves++ = 777;
}

Functies::geefweer()
{
	for(int i = 0; i < 70; i++)
	{
		if(moves[i] == 666 || moves[i] == 777){
			cout << "lokatie " << i << " = " << moves[i] << endl;
		}
	}
}

int main()
{
	Functies * functie = new Functies;
	functie->functie1();
	functie->geefweer();
	system("pause");
	return 0;
}
 
of gewoon een tweede sterretje voor de laatste *moves ?

int functie1(...)
{
int moves[70];

functie2(moves);

}

void functie2( int *moves )
{

*moves++ = blabla // -> dit werkt (de array wordt aangepast)

functie3( moves);

}

void functie3(int *moves)
{

**moves++ = blabla // -> maar hier lukt het niet meer

}

aangezien je twee keer terug moet gaan om naar je value te geraken...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan