Поскольку key
ни на что не указывает, и вы ссылаетесь на него с помощью индексации массива, то есть источника. Как ключ получает значение. Вы перезаписываете или попираете какой-то другой блок памяти, который не принадлежит вам, следовательно, «нарушение прав доступа», зафиксированное окнами. Дважды проверьте код и убедитесь, что переменная была malloc'd или new'd.
Как примечание, для вашего здравомыслия лучше всего объявить это так:
unsigned char *key = NULL;
Таким образом, если вы попытаетесь получить доступ к key
без malloc'd / new'd, вы получите ошибку исключения из памяти (которая может быть легко исправлена) Учтите, что это значительно облегчает отладку.
Надеюсь, это поможет,
С наилучшими пожеланиями,
Том.