변경하고 싶습니다 malloc, memcpy 및 무료 기능을 사용하고이 libhooker를 LD_PRELOAD와 함께 사용하십시오.
나는 그들을 변경하고 몇 가지 테스트 케이스에 대한 그들을 테스트합니다. 그러나 그들 중 하나에서, 제 코드가 올바로 작동하지 않고 이유를 모르겠습니다.
테스트 케이스 :C는 상수 문자열에 메모리를 어떻게 할당합니까?
int main()
{
string s = "Hello";
return 0;
}
내 코드 출력 :
malloc[0x8229170-0x8229182]
[memcpy] source address 0x8048850 is not allocated.
free(0x8229170)
내가 상수 문자열 왜 내 코드가 잘못된 메모리를 할당 c는 방법을 모르겠어요.
미리 감사드립니다.
문자열? C++을 의미합니까? – Salgar
배경 정보를 제공 할 예정입니다. 그 프로그램을 실행하면 그 결과물을 어떻게 생산합니까? 문자열 리터럴은'malloc '에 의해 할당되지 않습니다. 그것은 데이터 세그먼트 (구현에 따라 다름)의 일부이고'malloc/free'에 의해 관리되지 않습니다. –
가능한 중복 : http://stackoverflow.com/questions/2589949/c-string-literals-where-do-they-go –