Witam!
Jakos nie potrafie sobie z tym poradzic.
Nie zdziwie sie jezeli ten blad jest w miare banalny. A wiec do rzeczy, przykladowy kod w C ( moze posiadac drobne bledy gdyz nie chcialem wklejac duzej ilosci kodu z orginalnego programu wiec troch pomodyfikowalem):
char ** func(char **tab_ws)
{
tab_ws = (char **)malloc(10*sizeof(char *));
for (p=0;p<=10;p++)
{
char filename[20];
sprintf(filename, "%s%d" ,"jakis_string" , liczba+p)
*(tab_ws+p)=filename;
printf("\t%s",*(tab_ws+p));
}
return tab_ws;
}
main ()
{
char **tab_wsk;
tab_wsk=func(tab_wsk);
for(k=0;k<=10;k++)
{
printf("\n\n%s",*(tab_wsk+k));
}
}
Problem polega w tym iz jezeli deklaruje sobie jakis string "filename" ktory powinien co petle przyjmowac wartosc jakis_string+liczba, gdzie liczba za kazdym ruchem petli jest zwiekszana. Do wskaznika tab_ws wrzucam wartosci np:
*(tab_ws+1)=string1;
*(tab_ws+2)=string2;
Wypisuje w kazdym ruchu petli wartosc jaka zostala wpisana i wygalda na prawidlowa.
Zwracam wowczas tab_ws i odbieram w main. Po wypisaniu kazdego ze wskaznikow mam wartosci te same. Dokladnie to tego pierwszego stringa. Natomiast jezeli dodam w petli tej "func" cos na styl *(tab_ws+1)="Ala" to wowczas po odebraniu w main mam pod zmienna tab_wsk string "Ala". Czemu wartosc filename nie jest zwracana a juz zwykly string tak.
Za bardzo nie wiem czy dobrze kombinuje. Chodzilo mi o to by w main dostepna byla tablica z funkcji z naszymi stringami.
Z gory dzieki.