首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cyclone是对fat指针执行静态检查还是动态检查?

cyclone是对fat指针执行静态检查还是动态检查?
EN

Stack Overflow用户
提问于 2012-11-26 11:10:14
回答 1查看 188关注 0票数 2

我正在通过Cyclone: A Safe Dialect of C学习一个PL类。这篇论文的作者解释说,他们已经添加了一个特殊的“胖”指针来存储边界信息,以防止缓冲区溢出。但是他们没有指定这个指针上的检查是静态的还是动态的。他们给出的例子似乎暗示程序员必须记得检查数组的大小,以便检查它们是否没有超过缓冲区。这似乎打开了编程错误的可能性,就像在C中一样。我认为Cyclone的整个想法就是让这种错误变得不可能。语言有检查吗?这只会让犯编程错误变得更难吗?

代码语言:javascript
复制
int strlen(const char ?s) {
    int i, n;
    if (!s) return 0;
    n = s.size; //what if the programmer forgets to do this.. or accidentally adds an n++;
    for (i = 0; i < n; i++,s++)
         if (!*s) return i;
    return n;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-27 11:09:28

“胖”指针支持带运行时边界检查的指针算法。

通过谷歌搜索“胖指针”从Wikipedia获得。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13558189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档