有沒有辦法保護內存區域?保護內存不被改變
我有這樣的結構:
#define BUFFER 4
struct
{
char s[BUFFER-1];
const char zc;
} str = {'\0'};
printf("'%s', zc=%d\n", str.s, str.zc);
它應該運行lenght BUFFER-1的字符串,garantee它在 '\ 0' 結束。
但是編譯器只爲給錯誤:
str.zc='e'; /*error */
若:
str.s[3]='e'; /*no error */
如果用gcc編譯和一些標誌可能會做,這是很好的爲好。
感謝, 貝喬
http://en.wikipedia.org/wiki/Memory_protection – 2011-09-23 17:19:32
謝謝。我現在要看看。 –
@VladLazarenko我沒有看到一種方法來保護結構中的單個字節,就像問題中指出的那樣。只通過寄存器保護頁面。 –