2 limit lmt limit_lmt 于 2016.02.08 18:56 提问

哪位大牛来帮帮我看看这个内存分配的小程序的问题

图片说明
free函数不是把p指向的内存空间释放了吗?为什么我还可以使用它的空间,编译运行都没有出错?是哪里出了问题?还是我理解错了什么

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.09 07:18
已采纳

本来就是如此,甚至你不分配空间,拿p瞎指一个地址,都可以赋值。C不会对它检查。

“虽然释放了内存空间 但是由于你重新定义了 是一个int值 所以又自动分配了内存”这个回答是错的。不会分配内存,此时往p赋值,结果不可预料。

michael233123
michael233123   2016.02.08 19:07

虽然释放了内存空间 但是由于你重新定义了 是一个int值 所以又自动分配了内存

limit_lmt
limit_lmt 这个哪里是声明啊,这不是赋值,对内存使用吗?
2 年多之前 回复
michael233123
michael233123 回复limit_lmt: 你可以试试在free(p)后面再*p=22上面输出一下
2 年多之前 回复
michael233123
michael233123 回复limit_lmt: 就是你又声明了一次 啊 *p=22
2 年多之前 回复
limit_lmt
limit_lmt 哪里重新定义了啊??不懂(=_=)
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
哪位大牛帮我看看问题所在
代码如下: #include #include void line(int j) { for (j=0;j<40;j++) printf("-"); printf("\n"); } int main() { float a,b; int oper; printf("请输入运算的两个数:\n"); scanf("%f",&a);
哪位大哥帮帮我啊
各位大哥我是快毕业的学生要写毕业设计我有个在线考试系统登陆用户名就是上不区为什么啊显示无法打开大家帮我看看啊谢谢或者有做好的在线考试系统让我下个哦谢谢,帮我看看问题在哪?我怎么没有方法粘附件啊?
哪位大神能帮帮我编写下双向链表这个程序
我是大一的,先修大二课程C++,可这个是
哪位大牛 帮看看有没有逻辑错误
// 图片处理Dlg.cpp : 实现文件 //   #include "stdafx.h" #include "图片处理.h" #include "图片处理Dlg.h" #include "MyWrapperAdo.h"       void C图片处理Dlg::OnBnClickedButton1() {      //TODO: 在此添加控件通知处理程序代码
谁能帮帮我解决这个问题
#include "sysmets.h"#include "headers.h"LRESULT CALLBACK WinProc(HWND hwnd,UINT message,WPARAM wParam ,LPARAM lParam);int WINAPI WinMain(  HINSTANCE hInstance,  HINSTANCE hPrevInstance,  PSTR
大家帮帮我看看这个简单socket程序为什么报错
各位能帮我看看不,这个简单的socket为什么保存为什么一个人发送消息而其他人得不到信息,开发环境是VS2005
帮帮我看看一个小问题,
用户登陆的问题我用循环就出错,  String name = new String(request.getParameter("name").getBytes("iso-8859-1"));  String password = new String(request.getParameter("password").getBytes("iso-8859-1"));  String  conditi
帮帮我这个小菜鸟行吗~~~???
我用ADO和SQL相连,连是连上了,可写入数据的时候就出问题了,运行的时候数据能写入表中,可还是出错,说ADOConnection1没有找到返回值什么的,可数据表里面还是能找到刚才输入的数据,这是为什么/??各位高手帮帮我行吗????谢谢了~!!!
看看这个StringBuffer的问题
提供一个方法: public static void getBuffer(StringBuffer x,StringBuffer y){     y.append(x);     y=x;  } public static void main(String args[]){  StringBuffer x=new StringBuffer("x");  StringBuffer y=
哪位大侠帮我看看
最近做一个东西,就拿图书管理打个比方吧。工具为 vc++,数据库为sql server,表一中放的是—“借书的日期”,以及—“借多长时间”。表二中放的是—“提前多少天发邮件通知”。表三中放的是—“邮件接受人的邮箱地址” 现在想做的功能 就是  1.在还书日期提前x天给借书人发邮件提醒 还书2.同时给管理员发消息,该给谁提醒了,让他还书 我自己设想了一个大概,这个工具是单