|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码
|
|