Je sais comment modifier un tableau de pointeurs dans main, mais je ne sais pas comment le faire lorsque ma fonction a besoin de le modifier. Le code entre ** est comment je le fais en main sans utiliser une fonction. Je sais comment imprimer le tableau de pointeur de pointeur. Ma question est, supposons que je veux déplacer ces lignes ** dans la fonction(), que dois-je modifier?comment passer tableau de pointeur de pointeurs vers une fonction?
code:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void function(char *array[], int size);
void function_print(char *array[], int size);
int main()
{
char *array[] = {0};
char word[20];
**scanf("%s", word);
int len = strlen(word) + 1;
array[size] = (char *)malloc(sizeof(len));
strlcpy(array[size], word, sizeof(array[size]));**
function(array, 0);
return 0;
}
void function(char *array[], int size)
{
}
void function_print(char *array[], int size)
{
for(int x = 0; x < size; x ++)
{
printf("%s", *array);
(array)++;
}
}
~
~
Ce que vous faites n'a pas de sens * avant * à votre appel de fonction. Il ne semble pas que vous ayez besoin d'un tableau de pointeurs pour faire ce que vous pourriez faire. De plus, les deux endroits où vous utilisez 'sizeof()' semblent problématiques et ne font probablement pas ce que vous voulez. Vous pourriez obtenir de meilleures réponses en clarifiant ce que vous avez l'intention de faire. – antak