메모리 영역을 보호 할 방법이 있습니까? 이 '\ 0'로 끝나는메모리가 변경되지 않도록 보호하기
#define BUFFER 4
struct
{
char s[BUFFER-1];
const char zc;
} str = {'\0'};
printf("'%s', zc=%d\n", str.s, str.zc);
아이폰에의 버퍼-1의 문자열을 운영하기로하고, garantee :
나는이 구조체가있다.
그러나 컴파일러에만 오류가 있습니다 :
str.zc='e'; /*error */
하지 않을 경우 :
str.s[3]='e'; /*no error */
의 gcc로 컴파일 할 수있는 몇 가지 플래그가, 그뿐만 아니라 좋은 경우에.
덕분에, BECO
http://en.wikipedia.org/wiki/Memory_protection –
감사합니다. 나는 지금 당장 살펴볼 것입니다. –
@VladLazarenko 질문에서 지적한 것과 같은 구조 내에서 단일 바이트를 보호 할 방법이 없습니다. 레지스터를 통한 페이지 보호 만. –