c++ - 每次运行都有不同的输出?

标签 c++

编译代码后

#include <iostream>

int* func(int a) { return &a; }

int main() {
std::cout << func(2) << std::endl;
}

当我多次运行可执行文件时,每次运行它都会返回不同的值。这让我很困惑,我本以为编译器会删除所有变量名称并将它们替换为固定的内存地址,因此在每次运行可执行文件时我应该获得相同的值?

最佳答案

每次运行程序时,操作系统都会为其分配不同的内存部分。

所以不要指望每次相同的变量都会有相同的内存地址。

Operating System - Memory Management

关于c++ - 每次运行都有不同的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40319431/

相关文章:

c++ - 使用 Make 使用 g++ 编译时出现 "Bad command or file name"错误

c++ - QTabWidget 上有没有一种方法或方法可以检查用户是否访问过某个标签页?

c++ - 如果 operator< 适用于浮点类型,为什么我们不能将它用于相等性测试?

c++ - SFINAE: std::enable_if 作为函数参数

c++ - 在 OpenCV 中乘以矩阵的 SVD 分量

c++ - 需要一个函数在用完有效值后继续减少值

c++ - 为什么内联未命名的命名空间?

c++ - 将点云投影到其特征向量上

c++ - 你能解释一下在 C++ 中使用 std::hex 和 std::wios::hex 时输出的原因吗

c++ - 安装 CMake 后,我找不到带有 `find_package` 的包