J'ai fait une fonction simple en C qui prend comme arguments 1 pointeur sur int, 1 pointeur double sur int et un entier (le troisième argument est peut-être inutile car il représente le nombre d'entiers sont stockés dans l'espace indiqué par le premier argument). Ce qu'il fait est: D'abord, fait assez d'espace dans la mémoire pour contenir 2 entiers et définit le deuxième argument pour pointer vers cet espace. Ensuite, copie les entiers de l'espace vers lequel le premier argument pointe vers l'espace vers lequel pointe le second argument. Troisièmement, il incrémente tous les entiers dans l'espace que le premier argument pointe par 1. Je sais que cette fonction est inutile, mais je veux savoir ce qui ne va pas avec ma solution. Voici le code:A propos d'une fonction qui utilise des pointeurs en C
#include <stdlib.h>
#include <stdio.h>
int *x, *y;
void duplicateAndIncreaseByOne(int *arg1, int **arg2, int arg1Elements){
int ctr;
*arg2 = (int *) malloc(arg1Elements * sizeof(int));
for(ctr = 0; ctr < arg1Elements; ctr++){
**(arg2 + ctr) = *(arg1 + ctr);
*(arg1 + ctr) = *(arg1 + ctr) + 1;
}
}
int main() {
int j;
y=(int *)malloc(2*sizeof(int));
*y=10; *(y+1)=50;
duplicateAndIncreaseByOne(y, &x, 2);
printf("The pointer y contains the elements y[0] = %d and y[1] = %d\n", y[0], y[1]);
printf("The pointer x contains the elements x[0] = %d and x[1] = %d\n", x[0], x[1]);
}
Y at-il un problème quelque part ici? S'il vous plaît préciser ce que vous avez besoin d'aide avec ... –