| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
其他的代码就省略了,   
 
- int* ptr = (int *)malloc(sizeof(int));
 
  
- *ptr = 110;
 
  
- free(ptr);
 
 
  复制代码 
free之后,ptr指针还会存在吗? 整数110还在吗? ptr所指的空间会怎么样? 
谢谢回答!
ptr在,数据110应该是不在了,ptr指向的地址仍不变。 
可以写个代码试试,ptr指向一直是不变的,但是因为free释放了地址所存储的空间,数据也就被释放。
 - #include <stdio.h>
 
 - #include <stdlib.h>
 
  
- int main()
 
 - {
 
 -         int *ptr;
 
 -         
 
 -         ptr = (int *)malloc(sizeof(int));
 
  
-         *ptr = 110;
 
 -         printf("释放前:\n *ptr = %d\tptr = %p\n", *ptr, ptr);
 
  
-         free(ptr);
 
 -         printf("释放后:\n *ptr = %d\tptr = %p\n", *ptr, ptr);
 
  
-         *ptr = 220;
 
 -         printf("重新赋值:\n *ptr = %d\tptr = %p\n", *ptr, ptr);
 
  
-         return 0;
 
 - }
 
  复制代码 
 
 
 |   
 
 
 
 |