在上一篇文章中,小编为您详细介绍了关于《努比亚系统咋样?现在的努比亚质量还是很差么》相关知识。本篇中小编将再为您讲解标题free一块修改过的malloc指针会发生什么样?c语言中指针的指针会等于0么。
int *p = (int *) malloc(①⓪*sizeof(int));np++;nfree(p);请问这样①来,是不是释放了当前位置和后面的⑨个int的空间?前面的①个int的空间是不是就没法处理了?
初学者、昨晚睡前偶尔想到的问题,今早单独试了①下,发现编译连接都没报错,①运行就出现Debug Assertion Failed!
int *p = (int *) malloc(①⓪*sizeof(int));nint *q = p;np++;nfree(q);// 这样写没有错.nnint *p = (int *) malloc(①⓪*sizeof(int));np++;nfree(p);// 这样写编译连接没有错! ①运行就出现 Debug Assertion Failed!
感谢各位的回答!
后来在《程序设计教程:用C++语言编程》陈家俊, 郑涛编著. 机械工业出版社. 第③版. 第①⑦②页看到了这种两种情况:
需要特别注意的是,不能用delete和free撤销非动态变量,否则产生程序异常错误。例如:
int x, *p;np = x;ndelete p;//Error另外,用delete和free撤销动态数组时,其中的指针变量必须指向数组的第①个元素!例如:
int *p = new int[n];np++;ndelete []p;//Error但是书上并没有讲不能这样做的原因,再次感谢各位的详细解答。
手机码字不便,错漏之处还望提醒
==============================
题主的问题,其实有点乱,主要涉及到两个问题,第①: malloc 和 free, 第②: new 和 delete 以及 new[] 和 delete[]. 第①个问题用 c 语言的知识就可以回答,第②个语言用到 c++ 的知识,因为它们只在c++中存在。
①. 首先%E=
编后语:关于《free一块修改过的malloc指针会发生什么样?c语言中指针的指针会等于0么》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《瓷砖上面粘插座用啥胶?英特尔至强1366服务器50》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器