在VS2017中局部变量的内存地址分配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在VS2017中局部变量的内存地址分配相关的知识,希望对你有一定的参考价值。

在VS2017中运行这个程序:
#include <stdio.h>

int main(void)
int num1;
int num2;
int num3;
int num4;
printf("%p\n%p\n%p\n%p\n", &num1, &num2, &num3, &num4);
return 0;


为什么在release模式下打印出来的地址大小num1 < num2 < num3 < num4,而在debug模式下打印出来的地址大小关系变成了num1 > num2 > num3 > num4?

参考技术A 这是新手常犯的错,变量必须先赋值,再使用。这样使用,结果是随机的。追问

这个程序没有使用变量的值,是在观察变量在内存中的地址分配。是否初始化都会出现这个问题。

追答

所描述确实是比较有趣的现象,一般不太留意这类问题。也许,不同的编译器,会有不同的处理方式。

以上是关于在VS2017中局部变量的内存地址分配的主要内容,如果未能解决你的问题,请参考以下文章

程序中的内存分配

指针做形参做局部变量以及内存分配

在C语言中,如何给函数分配内存?

Java内存分配

一维数组和面向对象基础知识

C语言如何给指针分配内存?