use*_*185 9 c pointers variable-initialization
我有以下代码:
int *numberArray = calloc(n, sizeof(int));
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么会收到以下错误.
Cannot initialize a variable of type 'int *' with an rvalue of type 'void *'`.
Run Code Online (Sandbox Code Playgroud)
谢谢.
R S*_*ahu 19
编译器的错误消息非常清楚.
返回值calloc是void*.您将它分配给类型的变量int*.
对于C程序,这是可以的,但不适用于C++程序.
您可以将该行更改为
int* numberArray = (int*)calloc(n, sizeof(int));
Run Code Online (Sandbox Code Playgroud)
但是,更好的选择是使用new运算符来分配内存.毕竟,您正在使用C++.
int* numberArray = new int[n];
Run Code Online (Sandbox Code Playgroud)