У меня есть следующий вопрос. Я не, если это возможно и как. Я хочу понять, когда код использует адрес памяти, выделенный в кучу (для всех типов встроенных объектов и определения пользователя). Например:C++ как проверить доступ к памяти кучи
char* p= new char[60];
strcpy(p,"home"); // statement A
Существует способ, чтобы понять, что «утверждение А», используя адрес «р», выделенную в куче? Переопределяя оператор new, я могу сохранить адреса кучи, но как понять, когда некоторые инструкции их используют? Я хотел бы сделать это прозрачным способом для пользователя.
Большое спасибо
****** Пример
char* p= new char[60];
delete [] p;
strcpy(p,"home"); // statement A
Я хочу предупредив этот неверный доступ к памяти. Для этого я должен понимать, что strcpy пытается получить доступ к адресу p, поэтому я могу выполнить некоторый тест на достоверность p.
Что именно вы подразумеваете под «как понимать, когда некоторые инструкции используют их»? Я не понимаю, чего вы пытаетесь достичь. – Mat
Привет, Mat, я хочу понять, когда программа использует адрес для чтения/записи. – GTA
Что значит «понимать» здесь? Или что вы не понимаете в заявлении A? Есть ли другие утверждения, которые вы не получаете? – Mat