一个简单的问题我无法找到问题:
double* array = (double*) malloc(ARRAY_SIZE * sizeof(double));
或者我可以简单地
double* array = malloc(ARRAY_SIZE * sizeof(double));
有什么不同吗?
答案 0 :(得分:4)
在C中,你不应施放,因为它可以隐藏某些微妙的错误。在C ++中(因为你的问题最初有这个标签,尽管身体没有提及),你有来演员。
我说的“细微错误”包括奇怪的行为,当你的整数和指针大小不同而你没有包含malloc
的标题时 - 在这种情况下,你可能会发现它假设它返回一个int
(在此过程中丢失信息),并且,虽然编译器通常会警告这一点,但显式转换可能会阻止这种情况。