V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nlzy
V2EX  ›  C

人再笨还能写不出内存安全的 C?

  •  
  •   nlzy · 1 天前 · 2896 次点击

    人再笨还能学不会空指针不能解引用?

    人再笨还能学不会超出存储期的对象的指针不能解引用?

    人再笨还能学不会 alloc 出来的指针需要 free 一次?

    人再笨还能学不会 alloc 出来的指针不能越界读取和写入?

    人再笨还能学不会 malloc 出来的内存需要初始化才能读取?

    人再笨还能学不会 free 只能用在 alloc 出来的指针上?

    人再笨还能学不会 free'ed / realloc'ed 的指针不能再次 free ?

    人再笨还能学不会重用 free'ed / realloc'ed 的存储是未定义行为?

    人再笨还能学不会 realloc 返回 NULL 时原有指针仍需 free 一次?

    人再笨还能学不会 memcpy memmove 的目标缓冲区的大小需要足够大?

    人再笨还能学不会 memcpy 的两段内存区域不能重叠?

    人再笨还能学不会 strcpy strlen puts printf("%s"...) 只能用在带 '\0' 终结符的字符串上?

    ...

    20 条回复    2025-09-05 21:43:43 +08:00
    Gilfoyle26
        1
    Gilfoyle26  
       1 天前
    Rust:电脑不可信,人不可信,我只相信编译器。
    moefishtang
        2
    moefishtang  
       1 天前
    钱老别说了/(ㄒoㄒ)/~~
    破防了
    Nugine0
        3
    Nugine0  
       1 天前
    当你对你的内存安全知识很自信时,想想心脏滴血和永恒之蓝,你觉得你比 OpenSSL 的人厉害还是比 Windows 的人厉害?(狗头
    bunny189
        4
    bunny189  
       1 天前 via iPhone
    你再骂?!
    coderluan
        5
    coderluan  
       1 天前
    楼主这头像非常适合这个话题,让我想起百度 C 语言吧了
    WorseIsBetter
        6
    WorseIsBetter  
       1 天前
    更多时候不是笨的问题,而是疏忽导致的犯错。
    尤其是当程序架构设计得比较糟糕,屎山代码一堆起来,这种疏忽就更容易发生。

    所以我现在写的新应用默认当我开始处理不信任的用户输入时,攻击者立即取得 ACE 。
    但由于有 seccomp+landlock / capsicum 沙箱兜底,即便如此攻击者也无法造成实质性的损害(如果沙箱自身没有漏洞的话)

    To Err Is Human; To Sandbox, Divine.
    ejin
        7
    ejin  
       1 天前
    最近琢磨了一下,还是想学点单片机,但是 C++语言基本上是必选的,实在不想碰,唉。
    ejin
        8
    ejin  
       1 天前
    你说的这些都不难,

    但是心智负担重啊。
    kristofer
        9
    kristofer  
       1 天前
    楼主道心破碎了? hhh
    strobber16
        10
    strobber16  
       1 天前 via Android
    我还是去学微积分吧
    levelworm
        11
    levelworm  
       1 天前 via iPhone
    有可能的话用 arena 也许能好一点
    dmanbu
        12
    dmanbu  
       16 小时 50 分钟前
    钱学森说「人就算再笨还能学不会微积分吗」
    FreeWong
        13
    FreeWong  
       16 小时 17 分钟前
    zig 是好的选项吗
    vultr
        14
    vultr  
       16 小时 0 分钟前
    其实不是笨的问题,是根本不学的问题。
    body007
        15
    body007  
       15 小时 55 分钟前
    @dmanbu 不就是微信积分嘛,多用微信支付就有积分
    minami
        16
    minami  
       15 小时 30 分钟前   ❤️ 1
    虽然编程原神马上就要打过来了,但我还是要说,如果管理不好内存的话,老老实实用 gc 语言
    profchaos
        17
    profchaos  
       15 小时 0 分钟前
    古法编程遗老严重阻碍了计算机的发展,rust 是对的
    wangtian2020
        18
    wangtian2020  
       14 小时 55 分钟前
    感觉不如 Zig
    proxychains
        19
    proxychains  
       10 小时 41 分钟前
    别骂了别骂了
    red13
        20
    red13  
       3 小时 55 分钟前
    OP 重仓军工股了?
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1210 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 17:39 · PVG 01:39 · LAX 10:39 · JFK 13:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.