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

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

  •  
  •   nlzy · 14 天前 · 3608 次点击

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

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

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

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

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

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