![]() |
1
14
不,p2->x在呼叫malloc后可以是任何内容。在您的测试环境中,它恰好是0。
正如所有人告诉你的,new将从freestore获取内存的调用与对对象构造函数的调用结合起来。马尔洛只做了一半。 修正:当样本程序出错时。在类中使用“malloc”并不总是错误的。在共享内存的情况下,它是完全有效的,您只需向new添加就地调用:
|
![]() |
2
3
new调用构造函数,malloc将不调用。所以您的对象将处于未知状态。 |
![]() |
3
1
实际的行为是未知的,因为
在您的代码中,第二部分丢失了,因此,它可能在一种情况下工作,但它不能工作,但您不能确切地说。 |
![]() |
4
0
为什么0不能也是一个任意数?是否在调试模式下运行?什么编译器? vc++用一个由0xcc字节值组成的字符串(当然是在调试模式下)预先填充新分配的内存,这样,如果使用该字符串,您就不会得到答案的零。 |
![]() |
5
0
malloc不保证将分配的内存清零,并且程序的结果未定义。
否则,还有许多其他的东西,使这个程序不正确的C++。
|
![]() |
9-Pin · 释放具有内部空字节的动态分配字符串 7 月前 |
![]() |
Viewed · 如何从popen中获得结果? 11 月前 |
|
dhutturi · malloc()没有分配我期望它[复制]的内容 11 月前 |
|
vansergh · 如何为malloc分配的数组释放内存? 1 年前 |
![]() |
EagleStar · 显示错误的值:C指针还是malloc问题? 1 年前 |