Если я правильно понял, то строка:
u08 * ptr;
обозначает определение указателя на 8-битовую беззнаковую переменную, а так как "var" у нас 32-битная, то к ней этот указатель не прикрутить будет. В этом вся и проблема, что увеличивая указатель этой переменной, мы попадем не на второй ее байт, а на следующую переменную, которая стоит за "var".
Этот пример вы привели для какой платформы? Что значит строка :
ptr = var; ?