Как мне решить эту проблему с массивами в C? - PullRequest
0 голосов
/ 19 января 2019

Я передаю массив функции, размер которой определяется самим пользователем.

  #include<stdio.h>
void mapper(int a[], int size);
int main ()
{
    int n;
    printf("Please provide the number of inputs\n");
    scanf("%d",&n);
    int array[n];
    for(int i=0; i<n;i++)
    {
        scanf("%d",&array[i]);
    }
    mapper(array,n);
    return 0;

}
void mapper (int a[], int size)
{
  for (int i=0; i<size;i++)
  {
    for(int j=0; j<sizeof(a[i]);j++)
    {
        printf("#");
    }
    printf("\n");
  }
}

Когда я запускаю эту программу, я получаю ошибку, называемую сравнение целого числа со знаком и целого числа без знака.Почему это так?Это потому, что я передал [] в качестве аргумента, а позже использую [i]?

Как передать массив в качестве аргумента функции, размер которой должен быть определен?

1 Ответ

0 голосов
/ 19 января 2019

Когда я запускаю эту программу, я получаю сообщение об ошибке, называемое сравнением целого числа со знаком и целого числа без знака.Почему это так?

Вы получаете эту ошибку, потому что в

for(int j=0; j<sizeof(a[i]);j++)

sizeof выдается значение типа size_t, которое является беззнаковымвведите и сравните его с int.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...