C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用malloc(0)和memcpy大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在某处读到:取消引用由大小为零的“新”分配返回的指针是UB.
在C中是否相同?
如果是,是以下代码UB? (假设大小= 0)
a->object[index].data = malloc(sizE);  
 memcpy(a->object[index].data,bytes,sizE);

据我了解:不.只是想仔细检查一下.

@H_673_8@

解决方法

当您将0作为参数传递给malloc时,它将分配的内存释放到malloc返回的指针.

结果是实现定义的.

C11:7.22.3内存管理功能

标准也说:

因此,在实现定义行为的任​​何一种情况下,释放都不会调用未定义的行为.

现在转到问题的另一部分.

7.1.4库函数的使用:

C11:7.24.1 p(2):

@H_673_8@ @H_673_8@

大佬总结

以上是大佬教程为你收集整理的使用malloc(0)和memcpy全部内容,希望文章能够帮你解决使用malloc(0)和memcpy所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。