这个问题涉及到C中与结构或数组关联的malloc。我注意到有两种分配内存的方法,我无法区分它们之间的区别。
char* arr = (char*) malloc(capacity * sizeof(char));对比
char* arr = malloc(capacity * sizeof(char));额外的(char*)是什么?代码在没有它的情况下编译得很好,并执行相同的结果。
发布于 2019-11-05 22:05:41
在C++中,您需要执行(char*)强制转换,但是在为C编译时,void*将自由转换为任何其他指针类型。
如果代码可能在两种语言之间共享,那么将强制转换放在其中是不需要花费的。
发布于 2019-11-05 22:13:50
函数马洛返回一个指向分配内存块开头的空指针。在C中,空指针可以隐式和显式地转换到任何类型,这就是为什么这两行代码在C中本质上是相同的。
https://stackoverflow.com/questions/58720126
复制相似问题