动态内存:new出来的都是动态的,需要程序员手动创建和回收,但在java中有垃圾回收机制。
静态内存:定义出来都是静态的,int i;int j,系统自动创建和回收。
#include <stdio.h> #include <malloc.h>//内存分配的头文件 main(){ int* p ;//在栈内存中申请p的空间 //这个函数的返回值为void* 所以要把他强转 p = (int*)malloc(4); //在堆内存申请4个字节的空间 *p = 123; printf("申请内存空间的值为%d ",*p); //重新申请内存空间 p = realloc(p,8); //为新申请的内存地址进行赋值 *(p+1)=66666; printf("重新申请内存空间的值为%d ",*(p+1)); free(p);//释放p的内存空间 system("pause"); }