Witam,
potrzebowałbym przekazać tablicę stringów przekazać do funkcji, w funkcji przepisać ją na inną tablicę stringów i tą inną tablicę stringów zwrócić do main... W kodzie mam dużo niepotrzebnych rzeczy ale to po to żebym widział co i gdzie i czy jest przekazane...
Dodam że jak w
char funkcja(char *argg[])
dodam "*" przed "funkcja"
char *funkcja(char *argg[])
To w main mam przekazane dwa pierwsze elementy tablicy...
Jestem początkujący...
Tutaj cały kod w którym próbuję przekazać te tablice...
#include <stdio.h>
#include <stdlib.h>
char funkcja(char *argg[])
{
char *tab[4];
printf("w funkcji %s %d\n", argg[0], strlen(argg[0]));
printf("w funkcji %s %d\n", argg[1], strlen(argg[1]));
printf("w funkcji %s %d\n", argg[2], strlen(argg[2]));
printf("w funkcji %s %d\n\n", argg[3], strlen(argg[3]));
tab[0] = (char*)malloc(sizeof(char)*strlen((argg[0])+1));
tab[1] = (char*)malloc(sizeof(char)*strlen((argg[1])+1));
tab[2] = (char*)malloc(sizeof(char)*strlen((argg[2])+1));
tab[3] = (char*)malloc(sizeof(char)*strlen((argg[3])+1));
strcpy(tab[0], argg[0]);
strcpy(tab[1], argg[1]);
strcpy(tab[2], argg[2]);
strcpy(tab[3], argg[3]);
printf("po przepisaniu %s %d\n", tab[0], strlen(tab[0]));
printf("po przepisaniu %s %d\n", tab[1], strlen(tab[1]));
printf("po przepisaniu %s %d\n", tab[2], strlen(tab[2]));
printf("po przepisaniu %s %d\n\n", tab[3], strlen(tab[3]));
return tab;
}
int main()
{
char **tab, *argg[] = {"cos1", "cos2", "cos3", "cos4"};
printf("%s %d\n", argg[0], strlen(argg[0]));
printf("%s %d\n", argg[1], strlen(argg[1]));
printf("%s %d\n", argg[2], strlen(argg[2]));
printf("%s %d\n\n", argg[3], strlen(argg[3]));
tab = funkcja(argg);
printf("koniec %s %d\n", tab[0], strlen(tab[0]));
printf("koniec %s %d\n", tab[1], strlen(tab[1]));
printf("koniec %s %d\n", tab[2], strlen(tab[2]));
printf("koniec %s %d\n\n", tab[3], strlen(tab[3]));
printf("\n\nHello world!\n");
return 0;
}