현재 Valgrind를 사용하여 메모리 누수를 확인하고 Purify를 대안으로 사용하고 있습니다. Valgrind는 힙에 생성되었지만 스택에 생성되지 않은 배열에 대한 액세스 위반을 확인할 수 있습니다.스택 변수에서 액세스 위반을 찾아 낼 수 있습니까?
char* a = static_cast<char*>(malloc(sizeof(char) * 5));
a[7] = 'c';
printf("%c\n", a[7]);
free(a);
위 코드에서 Valgrind points는 유효하지 않지만 다음 코드는 유효하지 않습니다.
char a[5] = {0};
a[7] = 'c';
printf("%c\n", a[7]);
두 코드 블록의 액세스 위반을 식별 할 수 있습니까?