use*_*561 5 c c++ malloc casting
我有一些带有malloc语句的C代码,我想与一些C++代码合并.
我想知道什么时候以及为什么要在C++中使用malloc neccessary进行类型转换?
例如:
char *str = (char*)malloc(strlen(argv[1]) * sizeof(char));
Run Code Online (Sandbox Code Playgroud)
cni*_*tar 17
何时以及为什么要在C++中对malloc必要进行类型转换?
总是在没有分配给a时void *,因为void *它没有隐式转换为其他指针类型,它在C中的方式.但真正的答案是你不应该malloc首先在C++中使用它.
我不是建议你应该用new而不是malloc.现代C++代码应该new谨慎使用,或者尽可能完全避免使用它.你应该隐藏所有使用new或使用非原始类型(如std::vectorXeo所提到的).由于我的经验有限,我不太有资格在这方面给出建议,但这篇文章以及搜索"C++避免新的"应该会有所帮助.然后你会想看看: