Re: C: вопрос по матрице
От: Chorkov Россия  
Дата: 21.09.09 07:19
Оценка:
Здравствуйте, Аноним, Вы писали:

А>почему 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();
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.