Здравствуйте zaxs, Вы писали:
Z>main()
Z>{
Z>char ** files;
Z>vvod(&files);
Z>}
Z>vvod(char *** list)
Z>{
Z>int i,n=3;
Z>for(i=0;i<n;i++) *list=(char **)calloc(n,sizeof(char *));
Z>**(list+0)="zxcvb";
Z>**(list+1)="asdfg";
Z>**(lis t+2)="qwert";
Z>}
Z>Так вот а в main передается только первое значение массива, т.е. **(list+0).
Z>files[0] = "zxcvb"; а вот files[1], files[2]="";
Z>Подскажите как получать все значения ???
тут две ошибки
1) память надо выделять только один раз, а не три
2) вместо **(list + 0) должно быть *((*list) + 0)
vvod(char *** list)
{
int n=3;
*list=(char **)calloc(n,sizeof(char *));
*(*list+0)="zxcvb";
*(*list+1)="asdfg";
*(*list+2)="qwert";
}
Но ИМХО вот такой код более понятен:
vvod(char *** list)
{
int n=3;
char ** l = (char **)calloc(n,sizeof(char *));
l[0]="zxcvb";
l[1]="asdfg";
l[2]="qwert";
*list = l;
}