0

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

4

1 回答 1

3

使用*num代替num

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

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

而且你不应该转换realloc返回值。

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

于 2013-05-05T16:32:03.430 回答