Bonsoir tout le monde,
Voila j'ai un petit problème avec une fonction, en effet je lui donne un parametre un pointer et j'aimerai avancé dans celui-ci afin de pouvoir lui ajouter des caractères. Je m'y prend donc pour l'appel de cette manière :
Je fais donc appels X fois à la meme fonction qui en fonction des parametres permet de modifier mon unsigned char* vFinalBuffer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 unsigned char* vFinalBuffer = (unsigned char*) calloc(86 ,sizeof(char)); printf("1 : %p \n",vFinalBuffer ); maFonction(......, 4, vFinalBuffer); printf("2 : %p \n",vFinalBuffer ); maFonction(......, 4, vFinalBuffer); printf("3 : %p \n",vFinalBuffer ); maFonction(......, 4, vFinalBuffer); exit(0);
Et donc voici maFonction :
Or le problème, c'est que lorsque je lance le programme, je vois que l'adresse du pointer de vFinalBuffer reste toujours la meme alors que normalement elle aurait du etre modifié.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void base64encode(......., int pSize, unsigned char* pBuffer) { char *vTmp = pBuffer; printf("Nombre de boucle : %d",pSize); for (i = 0; i < pSize; i++) { (*vTmp++) = base64[vIndex & 0x3f]; //On lui assigne une valeur } printf("TMP => %s \n", pBuffer); }
Merci par avance.
Partager