> 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)! 

Reply via email to