> char** funkcija() {
> char *enota[3]; /* lokalna je ta spremenljivka, kajne ?*/
char **nk_enota;
> char **k_enota = enota;
> char niz1[] = "niz1", niz2[]="niz2"; /* tole so lokalne
spremenljivke, torej
se zbrisejo, ko prides
ven iz funkcije. */
nk_enota = (char**)malloc (3*sizeof(char*));
nk_enota[0] = malloc(strlen(niz1));
strcpy( nk_enota[0], niz1 ); /* in tako naprej. */
return (k_enota);
}
... Ne pozabi, ce bos tole funkcijo izvedel takole, bos imel
v programu memory leak.
Ce naj funkcija1 napolni 1 char**, bi bilo fino, ce bi ga ze prej sam
alociral. Vsekakor pa ga ne pozabi na koncu pobrisati (pobrisati
moras vsak niz posebej)!