gpt4 book ai didi

C: 不能用 void* 类型的右值初始化变量

转载 作者:太空狗 更新时间:2023-10-29 16:51:40 26 4
gpt4 key购买 nike

我有以下代码:

int *numberArray = calloc(n, sizeof(int));

而且我无法理解为什么会收到以下错误。

Cannot initialize a variable of type 'int *' with an rvalue of type 'void *'`.

谢谢。

最佳答案

编译器的报错信息很清楚。

calloc 的返回值为void*。您将其分配给 int* 类型的变量。

在 C 程序中可以,但在 C++ 程序中不行。

您可以将该行更改为

int* numberArray = (int*)calloc(n, sizeof(int));

但是,更好的选择是使用 new 运算符来分配内存。毕竟,您使用的是 C++。

int* numberArray = new int[n];

关于C: 不能用 void* 类型的右值初始化变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24227723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com