Jag har ett litet problem med pekare, förklaras enklast med ett litet exempel. Hej!Pekarproblem i C, !C++
<code>
typedef struct astruct
{
int iVal1;
int iVal2;
};
void myOuterFun( int *pInt)
{
//gör något som förändrar det ptr pekar på. t ex
*pInt = 0;
}
void myInnerFunc(struct aStruct *pStruct)
{
//Gör något, bl a annat vill jag kunna anropa myOuterFunc med
//pekare till variablerna iVal1 och iVal2 i structen som pStruct pekar på.
myOuterFunc(&(pStruct->iVal1)); //PROBLEM, kan ej kompilera, hur ska det se ut?
}
void myStartFunc()
{
struct astruct MyStruct;
myInnerFunc(&Mystruct); //Det här anropet är ok
}
</code>
Hur ska funktionsanropet till myOuterFunc i myInnerFunc se ut för att värdet på MyStruct.iVal1 ska ha ändrats när man är tillbaks i myStartFunc?
Tack på förhand
JanneSv: Pekarproblem i C, !C++
Det här fungerar.struct AStruct
{
int iVal1;
int iVal2;
};
void myOuterFunc( int* pInt )
{
//gör något som förändrar det ptr pekar på. t ex
*pInt = 2;
}
void myInnerFunc( AStruct* pStruct )
{
//Gör något, bl a annat vill jag kunna anropa myOuterFunc med
//pekare till variablerna iVal1 och iVal2 i structen som pStruct pekar på.
myOuterFunc( &pStruct->iVal1 );
}
void myStartFunc()
{
AStruct MyStruct;
//Initiering
MyStruct.iVal1 = 0;
MyStruct.iVal2 = 0;
myInnerFunc( &MyStruct ); //Det här anropet är ok
}
//Håkan