Здравствуйте, Аноним, Вы писали:
А>почему c int так проходит, а с void, нет?
А>например...
А>void **box;
А>int i,d;
А>for(i=0,i<60;i++){
А> d=rand();
А> // 1
А> box[i]=calloc(1,1024);
А> box[i][d]=foo(another_buffer); // invalid use of void expression
А> /* 2
А> box=calloc(1,1024);
А> box[d]=foo(another_buffer); // нормально, еслби не меняется больше 1 раза, но мне нужен еще один индекс...
А>*/
А>}
А>foo возвращает указатель на char
Разименовывая указатель на void ты получаш адрес переменной, но не знаеш какого размера эта переменная. Соотвественно неможешь ничего присвоить такой переменной.
Пусть выражение box[i][d] будит иметь именно тот тип который ты пытаешся ему присвоить:
char***box;
std::cout<< typeof(box[0][0]).name();