楼主,p = malloc(1)
这句话左边的值和右边值,类型不一样呢?
可是我用dev-c++编译过了
我听课的也说是malloc借来的是void*
但这题的答案确实是B
这是mooc翁恺老师c语言程序设计 9.2出的题,你可以去看一下,答案确实是B,我编译也过了 本帖最后由 马老师 于 2020-10-22 21:17 编辑
乐乐学编程 发表于 2020-10-22 18:57
为了验证,我加了两条语句:
你把这个数调大一点,多等一会就好了,结束的时候他是直接出来的,也没有打印最后的一句话 反正我是编译通不过,顺便一提我是g++ -sts=c++14 g++ -std=c++14 cc.cpp 马老师 发表于 2020-10-22 21:16
你把这个数调大一点,多等一会就好了,结束的时候他是直接出来的,也没有打印最后的一句话
为了你这么个问题,让我等上一天或者几天? 乐乐学编程 发表于 2020-10-22 23:18
为了你这么个问题,让我等上一天或者几天?
我不是说了吗?你把数调大等的时间就可以变短,我发的图片34.11是时间吧?
一分钟都不到,怎么会让你等上1天呢? 永恒的蓝色梦想 发表于 2020-10-22 12:51
有的 malloc 分配失败会返回 NULL,导致0地址写入
学习了! p = malloc(1);
这个是什么 按你所说,将数字改为 10000000,运行后出现如下告警:
系统 DLL user32.dll 在内存中重定位。应用程序将不能正常运行。由于 DLL Dynamically Allocated Memory 占用了为 Windows 系统 DLL 保存的地址空间而产生了错误。应当与提供该 DLL 的供应商联系以得到新的DLL。
"Dx00401044"指令引用的"Ox0000000"内存。该内存不能为"written".
要终止程序,请单击“确定”
要调试程序,请单击“取消”。
点第一条告警,弹出第二条告警,所以,答案 A 是不正确的 (占用了为 Windows 系统 DLL 保存的地址空间而产生了错误,而不是没有了空间),答案 C 、D也是不正确的,故此题非要选一个答案,就只能选 B 了,尽管是因为占用地址出错而退出,而并非向 0 地址写入而退出
页:
1
[2]