Comment puis-je effectuer les opérations suivantes? L'idée est que la fonction alloue un pointeur externe pour que je puisse utiliser ce concept dans un autre programme, mais je ne peux pas le faire car gcc me dit toujours que l'argument provient d'un type de pointeur incompatible ... Cela devrait être simple, mais je ne le vois pas.C: Fonction qui reçoit un pointeur sur un pointeur de façon à pouvoir en allouer une externe
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int allocMyPtr(char *textToCopy, char **returnPtr) {
char *ptr=NULL;
int size=strlen(textToCopy)+1;
int count;
ptr=malloc(sizeof(char)*(size));
if(NULL!=ptr) {
for(count=0;count<size;count++) {
ptr[count]=textToCopy[count];
}
*returnPtr = ptr;
return 1;
} else {
return 0;
}
}
int main(void) {
char text[]="Hello World\n";
char *string;
if(allocMyPtr(text,string)) {
strcpy(string,text);
printf(string);
} else {
printf("out of memory\n");
return EXIT_FAILURE;
}
free(string);
return EXIT_SUCCESS;
}
'allocMyPtr (texte, & chaîne)' – Roddy
Oubliez la ligne en main qui copie "texte" à "chaîne", c'est inutile – davi5e