abivan (22.02.2013 11:12 - 11:26, просмотров: 99) ответил RedFroggy на Самое плохое - что ошибка неявная. Т.е. все способы, которые сразу приходят в голову, по приведению типов и т.п. - НЕ работают. Так как конструкцию 0xC0 + 4 работает, то всё что приходит в голову - какая-то проблема с передачей указателя на
пробуем так void f1(unsigned char *buff);
void f1(unsigned char *buff){
int iVar;
iVar=*(((int*)(buff+2))+3);
}
unsigned char Buff[]={0x1,0x2,3,4,5,6,7,8,9,0xA};
int main(){
f1(Buff);
return(0);
}
>Причём, если записать выражение как Var1 = 0xC0 + 4, то всё работает правильно.
этож обычная нициализация константой. Еще бы она работала не правильно.
Вообще дело не в кейле а в том как написано выражением. Нужно сначала указатель привести к типу, а потом делать смещение на n интовых элементов