|
1
2
一旦通过缓冲区溢出、野生指针或其他bug在堆上乱涂乱画,malloc的行为就变得没有定义,它可能返回任何东西。 Malloc只是一个用户空间库,里面没有任何魔力。如果我在应用程序的客户名称链接列表上乱涂乱画,那么当您稍后访问该列表时,就会出现奇怪的行为。Malloc的行为方式是相同的,但是由于Malloc的使用是通过代码分发的,所以因果关系是全球性的。 所有的答案都围绕着这样一个事实:指针错误是C代码中最常见的缺陷源。你很幸运,你得到了一个SIGBUS,这是缺陷的证据,可以从哪里和什么时候的故障发生广泛分离。使用 valgrind 帮助你找到真正的缺陷所在。 |
|
|
2
1
它检查Malloc是否返回NULL?你可能对平等测试有问题。尝试类似“if(malloc(…))then…;else…;”的操作,而不是特定的检查。
|
|
|
3
1
根据
this apple page
,如果
|
|
|
4
1
奇怪。。。如果我从命令行编译它,下面的代码对我有用。提供的运行时
顺便说一句: 这是在一个房间里吗 调试 或 释放 建造?也许XCode是想帮你解决这个问题。 |
|
|
5
0
如果此选项对您不可用,MacOSX有自己的内置调试工具。在一个较高的水平上,有一些工具。在低层,
你也可以使用
您可以这样运行程序:
|