这个问题是关于malloc
在 C 中与结构或数组相关。我注意到有两种分配内存的方法,但我无法区分它们之间的区别。
char* arr = (char*) malloc(capacity * sizeof(char));
对比
char* arr = malloc(capacity * sizeof(char));
额外的(char*)
有什么用? ?如果没有它,代码可以正常编译并执行相同的结果。
最佳答案
在 C++ 中,您需要进行 (char*)
强制转换,但在为 C 编译时,void* 将自由转换为任何其他指针类型。
如果代码可能在两种语言之间共享,那么进行强制转换不需要任何成本。
关于C 风格编码和动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58720126/