gpt4 book ai didi

c++ - 为什么这个在堆中调用的函数不能调用cout?

转载 作者:太空宇宙 更新时间:2023-11-04 15:49:45 24 4
gpt4 key购买 nike

我试图调用一个在堆中分配的函数。在一些失败的尝试之后,我尝试了这个网站中的代码:

http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/85d5da8c-edef-44b0-b42e-deb5f3eb2524

代码完美运行。它编译、运行、给出正确/预期的结果并顺利完成。

但是,如果我尝试添加类似 std::cout << "Hello World!"的内容<< 函数中的std::endl,复制到堆中然后执行堆函数就不行了。如果有 cout 那里它不起作用,没有 cout 它工作。

我想知道为什么会这样,我该如何解决这个问题。意识到我这样做的唯一目的是学习,我没有兴趣将其应用到实际使用中。

如果我的堆函数调用一个使用 std::cout 打印数据的函数,该代码也不起作用。

最佳答案

在您引用的文章中,它指出:

Only use local variable, don't use global variable, static variable, and constant string variable.

但是 std::cout 是全局的。我认为字符串文字可能会被归类为“常量字符串变量”,尽管文章术语有些不精确。

正如其他人所说,这段代码的行为是未定义的,所以究竟发生了什么是特定于实现的。不同的编译器可能会有不同的行为。

关于c++ - 为什么这个在堆中调用的函数不能调用cout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10587507/

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