c - 此缓冲区溢出是否适用于 Mac OSX?

标签 c security

正在阅读一些文本并试图在 C 中尝试写入超过数组的大小,即缓冲区溢出。文本表明,每当您尝试写 array[5] 当数组的长度为 5 时,您就会遇到段错误,但在使用下面的代码时我似乎没有得到它。代码实际运行。

#include <stdio.h>
#include <string.h>

int main ()
{
    int i;
    int array[5] = {1, 2, 3, 4, 5};
    for (i = 0; i <= 255; i++)
    {
        array[i] = 10;
    }
    int len = sizeof(array) / sizeof(int);
    printf("%d\n", len);
    printf("%d\n", array[254]);
}

在执行最后一条语句时,将打印 10。我想知道这是否是一个漏洞,或者我是否遗漏了什么。我在 macbook pro 上运行 iterm2 的代码。

最佳答案

写到最后是未定义的行为——任何事情都可能发生。

关于c - 此缓冲区溢出是否适用于 Mac OSX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11058441/

相关文章:

c - 我在尝试编译我的代码时收到编译错误

c - 实时感知 sleep() 调用?

java - httpBasic() 和authorizeRequest() 之间的区别

c# - 如何在 asp.net mvc 4.0 中将来自相同用户名和密码的用户限制为来自两个系统/浏览器的逻辑?

.net - 为什么不信任所有的 http 证书

c - 为什么 ntp 服务器不响应我的客户端请求?

c - 可变参数函数 - 如何获取 var_args 的数量?

c - 从字符串中删除 '|'

security - Windows 7 上的 Firefox 出现奇怪的安全错误

Apache Openssl 压缩