gpt4 book ai didi

c - 如何在每次程序运行时从空指针取消引用中崩溃?

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:54 25 4
gpt4 key购买 nike

我使用 Dev C++ 将此代码编译为 32 位 可执行文件。

#include<stdio.h>
#include <stdlib.h>

void main() {
float f,*pf, i;
i = 10;
pf = (float *) malloc(sizeof(float));
pf = &i;

free(pf);
f = *pf;
printf("%f\n", f);

printf("%f", *pf);
}

取消引用释放的指针会导致崩溃,这里的崩溃不是因为未定义的行为而发生的。

我现在正在测试和学习,我想写一个空指针解引用代码每次运行都会崩溃。如何编写我的代码每次运行都会崩溃?

最佳答案

题名和描述有误。您一直在询问“空指针取消引用”,但您没有在任何地方取消引用空指针。事实上,您取消引用的指针 (pf) 保证不为空,因为它是变量 i 的地址。

您的未定义行为是由于在指向未动态分配的对象的指针上使用 free() 引起的(pf 指向局部变量 i)。

关于c - 如何在每次程序运行时从空指针取消引用中崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30675499/

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