am working with pointers in function A and need them to be accessible for function B
the function B seems to not have the same values
plz help
the function B seems to not have the same values
plz help
struct myStruct {
int* p1;
}
// a very inefficient way to count to 100
// we assume p1 is initialized here
void func1(myStruct s)
{
cout << (*s.p1)++;
if(*s.p1 == 100) return;
else func1(s);
}
int main(int argc, char* argv[])
{
ptr* max;
ptr* min;
// TODO: initialize max and min
A(max, min);
B(max, min);
}
A(ptr** myptr)
{
ptr* newptr;
// TODO: initialize newptr
*myptr = &newptr;
}
int main(int argc, char* argv[])
{
ptr someVariable;
ptr* changeme = &someVariable;
A(&changeme);
// Now changeme will contain the address of newptr from A,
// and not the address of someVariable!
}
void A(ptr *max, ptr*min);
void MyFunc(void (*)(ptr *max, ptr*min));
MyFunc(A);
static void A(T *max, T *min);
static void B(T *max, T *min);
int main(void) {
T max[N];
T min[N];
A(max, min);
B(max, min);
...
}
static void A(T *max, T *min) { ... }
static void B(T *max, T *min) { ... }
static void A(T *max, T *min, size_t nelem);
static void B(T *max, T *min, size_t nelem);
int main(void) {
...
A(max, min, N);
B(max, min, N);
...
}
void A(int *p);
void B(int *p);
int main(void) {
int *p;
if (<something>) {
int a;
p = &a;
A(p);
} else {
int b;
p = &b;
A(p);
}
B(p);
}
#include "common.h"
#include "Choix des Armes.h"
#define MAX_SIZE 10000
void main()
{
Monstre Squelettique[MAX_SIZE], Grassouillet[MAX_SIZE];
Eppee eppeeArr[MAX_SIZE];
int nbrEppee;
int *longestMonstre, *largestMonstre, *nbrSquelettique = 0, *nbrGrassouillet = 0;
int oneEppee[MAX_SIZE], twoEppee[MAX_SIZE];
do
{
MonstreFill(Squelettique, Grassouillet, nbrSquelettique, nbrGrassouillet);
//MaxLongMaxLargMonstre(Squelettique, Grassouillet, longestMonstre, largestMonstre);
//nbrEppee = EppeeFill(eppeeArr);
//CandidateEppee(oneEppee, twoEppee, longestMonstre, largestMonstre, nbrSquelettique, nbrGrassouillet);
test(Squelettique, Grassouillet, nbrSquelettique, nbrGrassouillet);
//EppeeElue(monstreArr, eppeeArr);
}while(UserSaysYes());
}
#include "common.h"
#include "Choix des Armes.h"
void MonstreFill(Monstre *Squelettique, Monstre *Grassouillet, int *nbrSquelettique, int *nbrGrassouillet)
{
int i, j, nbrMonstre, monstreType, monstreTaille;
printf("a l interieure de MONSTRE FILL\n");
do
{
puts("Nombre de monstre ?");
scanf("%d", &nbrMonstre);
}while(nbrMonstre < 1 || nbrMonstre > 10000);
//initialisation
for(i = 0; i < nbrMonstre; i++)
{
Squelettique[i].type = -1;
Squelettique[i].taille = -1;
Grassouillet[i].type = -1;
Grassouillet[i].taille = -1;
}
for(i = 0, j = 0; i < nbrMonstre - j, j < nbrMonstre - i; i++, j++)
{
do
{
puts("0->grand monstre, 1->petit monstre? largeur(petit monstre), longueur(grand monstre)?");
scanf("%d %d", &monstreType, &monstreTaille);
/*nbrSquelettique = 0;
nbrGrassouillet = 0;*/
}while(monstreType != 1 && monstreType != 0);
switch (monstreType)
{
case 0:
Squelettique[i].taille = monstreTaille;
Squelettique[i].type = 0;
j--;
break;
case 1:
Grassouillet[j].taille = monstreTaille;
Grassouillet[j].type = 1;
nbrGrassouillet++;
i--;
break;
default:
puts("If you are reading this you don't existe !!!");
}
}
nbrSquelettique = i;
nbrGrassouillet = j;
printf("%d %d", nbrSquelettique, nbrGrassouillet);
printf("SORTIE DE MONSTRE FILL\n");
}
#include "common.h"
#include "Choix des Armes.h"
void test(Monstre *Squelettique, Monstre *Grassouillet, int *nbrSquelettique, int *nbrGrassouillet)
{
printf("%d %d", nbrSquelettique, nbrGrassouillet); // here wrong results!!!
/*int i;
puts("Squelettique");
for(i = 0; i < nbrSquelettique; i++)
printf("%d\n", &Squelettique[i].taille);
puts("Grassouillet");
for(i = 0; i < nbrGrassouillet; i++)
printf("%d\n", &Grassouillet[i].taille);*/
}
#include "common.h"
typedef struct eppee{
int eppeeID;
int largeur;
int longueur;
} Eppee;
typedef struct monstre{
int type,
taille;
}Monstre;
void MonstreFill(Monstre *, Monstre *, int *, int *); // YES
int EppeeFill(Eppee *);
void MaxLargMaxLongMonstre(Monstre *, Monstre *, int *, int *);
void CandidateEppee(Eppee *, int *, int *, int *, int *);
void Eppeeelue(int *);
void test(Monstre *, Monstre *, int *, int *);
Comment