【发布时间】:2011-11-23 20:37:12
【问题描述】:
有没有办法保护内存区域?
我有这个结构:
#define BUFFER 4
struct
{
char s[BUFFER-1];
const char zc;
} str = {'\0'};
printf("'%s', zc=%d\n", str.s, str.zc);
它应该操作长度为BUFFER-1的字符串,并保证它以'\0'结尾。
但是编译器只给出错误:
str.zc='e'; /*error */
如果不是:
str.s[3]='e'; /*no error */
如果使用 gcc 和一些标志进行编译,那也很好。
谢谢, 贝科
【问题讨论】:
-
谢谢。我马上去看看。
-
@VladLazarenko 我没有看到像问题中指出的那样保护结构内的单个字节的方法。仅通过寄存器保护页面。
标签: gcc constants protection