blackbit (13.01.2006 12:55, просмотров: 1) ответил РДимка на Ответ: Попрбовал
Ответ: 1.
a.)
Лучше не использовать знак подчеркивания в своих идентификаторах - их обычно используют компиляторы и можно нарваться на совпадение.
Если не нужен непосредственный доступ к этим переменным их других модулей, то их лучше объявлять static. Попробуйте еще их явно инициализировать (хотя по стандарту static иницилиз. их в 0, но
кто знает...). Не должны адреса совпадать, я бы еще понял, ежели у них одинаковые имена были...
b.)
Бывает, что мудрит отладчик. В этом случае запишите произвольное значение в CRT и проверте, оно действительно перешло в _TAPRC[1].lbyte (или еще куда) и лучше явным условием в теле самой программы. Если нет - то он выдает желаемое за действительное (то бишь адреса на самом деле не совпадают).
c.)
Иногда такое бывает в случае с банкированной памятью - адреса-то одинаковые, да банки разные ;). Шучу, это не ваш случай.
2.
unsigned char ** pMsg - двойной указатель: "указатель на указатель на тип unsigned char".
Вам же нужно вытащить из функции по pMsg не значение unsigned char,а указатель на него, причем тащить пытаетесь тоже по указателю...