Прикольная штука!
От: NewKent  
Дата: 03.11.03 16:07
Оценка:
Правильные варианты:

short int *smoothedim;
unsigned char **edge;
int rows, int cols;
int i;

for(i = 0;i< rows*cols;i++){
   (*edge)[i] = (255*smoothedim[i]/255);
}


for(i = 0;i< rows*cols;i++){
   (*edge)[i] = (smoothedim[i]/1);
}



Не правильный варианты (с точки зрения компилятора)


for(i = 0;i< rows*cols;i++){
   (*edge)[i] = (smoothedim[i]/255*255);
}


for(i = 0;i< rows*cols;i++){
   (*edge)[i] = (smoothedim[i]/255*255);
}


Причем, второй вариант не трактуется как (*edge)[i] = (smoothedim[i]/(255*255));

Разница между "правильным" и "неправильным" заключается в массиве edge. В случае неправильного варианта, данные дублируются со смещением, и, вообще, чего-то страшное.

Испытано на VC6, VC6+SP5, VC7.

Я просто в шоке...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.