所以,我在C函数中得到了这个错误。
变量:
int* first_array = (int*) malloc(0);
int first_array_length;
int* second_array = (int*) malloc(0);
int second_array_length;
// Setting up first array
set_up_array(first_array, &first_array_length);
这是一个功能:
void set_up_array(int *arr, int *num)
{
char lenght_msg[] = "Iveskite masyvo ilgi";
char value_msg[] = "Iveskite masyvo elementa";
*num = num_scan(0, MAX_SIZE, lenght_msg);
arr = (int*) realloc(arr, num * sizeof(int)); // <- error here
for (int i = 0; i < (*num); i++)
{
arr[i] = num_scan(INT_MIN, INT_MAX, value_msg);
}
}
请帮忙!
错误:
类型'int *'和'unsigned int'到二进制'operator *'|
的无效操作数
答案 0 :(得分:3)
使用*num
代替num
:
realloc(arr, num * sizeof(int));
num
是指向int
的指针,int
指针的值为*num
。
并且您不应该转换realloc
返回值。