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 に答える