C错误:类型'int *'和'unsigned int'的无效操作数为二进制'运算符*'|

时间:2013-05-05 16:30:16

标签: c pointers realloc

所以,我在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 *'|

的无效操作数

1 个答案:

答案 0 :(得分:3)

使用*num代替num

realloc(arr, num * sizeof(int));

num是指向int的指针,int指针的值为*num

并且您不应该转换realloc返回值。

http://c-faq.com/malloc/mallocnocast.html