1

Тема: Незрозуміла проблема з вказівниками

Є ось таке простеньке завдання на codewars: https://www.codewars.com/kata/58f8a3a27 … 2e000144/c

Ось таке рішення працює на сайті:

bool firstNonConsecutive(const int arr[], const int length, int* first)
{
    if (length < 2) {
        return false;
    }
    for (int i = 1; i < length; i++) {
        if (arr[i] != arr[i - 1] + 1) {
            *first = arr[i];
            return true;
        }
    }
    return false;
}

Але в мене

*first = arr[i];

видавало помилку, runtime error:   store to null pointer of type 'int',
а

int num = arr[i];  first = &num; 

не працювало на їхньому сайті.
На виході first завжди дорівнював нулю.
Не розумію, що не так з моїм варіантом, він наче мав би працювати.

2

Re: Незрозуміла проблема з вказівниками

Teg Miles написав:
*first = arr[i];

видавало помилку, runtime error:   store to null pointer of type 'int',

А що саме ви передавали третім параметром? Якщо NULL, то в чому питання?

Teg Miles написав:
int num = arr[i];  first = &num; 

не працювало на їхньому сайті.

А яким чином воно могло працювати? Там же сенс - передати значення за покажчиком. А ви натомість цей покажчик змінюєте.

3

Re: Незрозуміла проблема з вказівниками

koala написав:
Teg Miles написав:
*first = arr[i];

видавало помилку, runtime error:   store to null pointer of type 'int',

А що саме ви передавали третім параметром? Якщо NULL, то в чому питання?

Teg Miles написав:
int num = arr[i];  first = &num; 

не працювало на їхньому сайті.

А яким чином воно могло працювати? Там же сенс - передати значення за покажчиком. А ви натомість цей покажчик змінюєте.

Так, вони там дають вказівник на певне валідне значення, а не NULL.

4

Re: Незрозуміла проблема з вказівниками

Будь ласка, наведіть код.
І якщо при компіляції є попередження - то і їх теж.

Подякували: leofun011

5 Востаннє редагувалося Teg Miles (06.08.2025 21:58:20)

Re: Незрозуміла проблема з вказівниками

koala написав:

Будь ласка, наведіть код.
І якщо при компіляції є попередження - то і їх теж.

Розібрався вже з цим. Коли я відтворював умови завдання,
то створював вказівник на NULL, а треба було зарезервувати місце
за допомогою malloc натомість. Тому мені й видавало помилку,
а на codewars там усе правильно через malloc зроблено,
тому й працює відповідно.
А мій варіант не працював на сайті, бо я створював посилання на локальну змінну.
Тому на виході вона просто обнулялася.

6

Re: Незрозуміла проблема з вказівниками

Teg Miles написав:

Так, вони там дають вказівник на певне валідне значення, а не NULL.

Teg Miles написав:

Розібрався вже з цим. Коли я відтворював умови завдання,
то створював вказівник на NULL

Ось чому дуже важливо не писати загальні фрази, а надавати код. Будь ласка, постарайтеся в майбутньому не припускати, що якийсь ваш код працює, а надавати його.