gpt4 book ai didi

c、doug lea 的 malloc——不正确的 free 不会崩溃。为什么?

转载 作者:太空宇宙 更新时间:2023-11-04 01:09:48 26 4
gpt4 key购买 nike

我正在使用 Doug Lea 的 malloc.cmalloc.h在以下代码中:

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

#define USE_DL_PREFIX

int main()
{
char *test = dlcalloc(5, 1);

strcpy(test, "helloextra");
dlfree(test); /* Shouldn't this crash? */

printf("%s", test);

return 0;
}

test 打印正确!有人可以解释一下吗?我在想我没有正确调整这个 malloc。以前有人遇到过这个问题吗?

在我拥有 this problem 之后,我开始使用 Doug Lea 的 malloc .

最佳答案

您的代码有 undefined behaviourstrcpy() 中。它允许崩溃,但不是必须的。

基本上,一旦行为未定义,任何事情都可能发生

关于c、doug lea 的 malloc——不正确的 free 不会崩溃。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15266512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com