Для вашего второго оператора вывода вы получаете то же самое, если печатаете значения как vtxIdx
, так и *tgtIdx
?
Что-то меняется, если вы инициализируете tgtIdx = NULL;
?
Если вы запускаете каждую NSLog
функцию дважды подряд с одинаковыми аргументами, выводят ли они каждый раз одно и то же?
Вы упомянули отладчик в своем вопросе.Что вы видели, когда пошагово проходили через эту программу?
Редактировать: Еще несколько идей.
Что произойдет, если вы закомментируете строку tgtIdx = &vtxIdx;
?
Что произойдет, если вы добавите строку unsigned int dummy;
перед объявлениями существующих переменных?
Поскольку что-то, похоже, меняет переменную за вашей спиной, мои первые мысли связаны с повреждением памяти (некоторыедругой код непреднамеренно перезаписывает вашу переменную) или проблема со связыванием (компоновщик увидел вашу переменную и другую переменную с тем же именем, подумал, что это один и тот же объект, и объединил их вместе).Добавление объявления фиктивной переменной должно помочь указать, является ли проблема проблемой повреждения памяти, а переименование переменных должно проверить любые возможные конфликты разрешения имен.