注册 登录
编程论坛 新人交流区

c++ 问题

fengwuying 发布于 2007-10-04 20:59, 316 次点击
#include<iostream>
#include<stdlib.h>
using namespace std;
int var01=1;
int main(void)
{
int var02=2;
int *p;
p=(int *)malloc(sizeof(int));
cout<<"global var01:"<<&var01<<endl;
cout<<"local var02:"<<&var02<<endl;
cout<<"malloc():"<<(void *)p<<endl;
free(p);
return 0;
}

请问这程序打印出的地址malloc():003A56E8怎么跟调试时地址0x003a5c70 怎么不相等啊!
谢谢!
2 回复
#2
fengwuying2007-10-04 21:01
回复:(fengwuying)c++ 问题

有人在吗?

#3
DieHeart2007-10-05 00:57
malloc分配的堆内存起始位置是系统决定的,理论上,程序运行一次后,再执行点别的占用内的程序,再执行这段代码结果都不相同。
1