简单比较C与C++在内存分配与释放中指针及其所指向的变量的变化,使用gcc 、g++编译。
示例一_C:
Example_One: #include<stdio.h> #include<stdlib.h> int main() { int *p; printf("%p\n",p); printf("%d\n\n",*p); p=(int*)malloc(sizeof(int)); printf("%p\n",p); printf("%d\n\n",*p); *p=6; printf("%p\n",p); printf("%d\n",*p); free(p); return 0; } Result: 0xb77b5d70 1474660693 0x804a008 0 0x804a008 6
示例二_C++:
Example_Two:
#include<iostream>
using namespace std;
int main()
{
int *p;
cout<<p<<endl;
cout<<*p<<endl<<endl;
p=new int;
cout<<p<<endl;
cout<<*p<<endl<<endl;
*p=6;
cout<<p<<endl;
cout<<*p<<endl;
delete p;
return 0;
}
Result:
0xb776bd70
1474660693
0x804a008
0
0x804a008
6
结果明显,不做分析。