欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c语言初学-关于内存空间的问题

程序员文章站 2023-10-27 15:26:10
[cpp] #include  #include  void main(){ ...

[cpp]
#include<stdio.h> 
#include<stdlib.h> 
void main(){ 
    float *p = (float *)malloc(sizeof(float)); 
    //申请空间,如果成功返回空间地址,如果失败返回null 
    *p = 10.0;//赋值 
    printf("内存里的值=%f\n",*p); 
    printf("内存的内存地址=%p\n",p); 
    free(p);//释放空间 
    printf("释放后的内存里的值=%d\n",*p); 
    printf("释放后的内存地址=%p\n",p); 
    //释放空间后,内存空间是没有消失的,依然存有那个空间地址; 
    //却交给其它程序使用了,这个时候如果你再次使用这个空间地址, 
    //就会把里面的数据破坏掉 
    //所以这个时候要二次释放: 
    //free(p); 
    //但是这个会导致错误,为了避免出错,要记得进行下面的操作: 
    p = null; 
    printf("清空后的内存地址=%p\n",p); 

结果:
内存里的值=10.000000
内存的内存地址=00540f08
释放后的内存里的值=-1610612736
释放后的内存地址=00540f08
清空后的内存地址=00000000
press any key to continue 


摘自 like7xiaoben