gpt4 book ai didi

c - char 指针的段错误

转载 作者:行者123 更新时间:2023-11-30 19:14:54 25 4
gpt4 key购买 nike

我尝试在 Windows 上运行一段代码,并在 Linux 上运行相同的代码。虽然它在 Windows 上运行良好,但在 Linux 中却出现了段错误。我知道在这段代码中我分配的内存被浪费了,但是有人可以澄清为什么 linux 会出错而 windows 不会。

char *ptr=(char*)malloc(sizeof(2*10));
ptr="harsh";
printf("%s\n",ptr);

最佳答案

这段代码本身不会出现段错误。很可能其他地方存在错误,该错误正在覆盖字符串“harsh”使用的内存(因此 printf 将崩溃)或覆盖维护堆的数据结构(因此 malloc 将崩溃)

这类问题对于初级程序员来说很常见,并且在不同的环境中会导致不同的问题。由于该程序中的三分之二似乎存在与内存相关的错误,因此这似乎是有可能的。

C++ 程序员必须学习的最重要的事情之一就是非常害怕这些类型的错误。这就是为什么在现代 C++ 中,我们总是使用 RAII 和集合类来确保不会发生此类问题。

关于c - char 指针的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33462984/

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