Re: C: вопрос по матрице
От: AnnihilatoRRR Россия  
Дата: 11.10.09 17:02
Оценка:
Здравствуйте, Аноним, Вы писали:

А>почему 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

Потому что box — указатель на указатель, следовательно box[d] эквивалентный *(box+d) это просто указатель. Поэтому все правильно. Функция возвращает указатель, и он присваивается *(box+d)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.