Задача така: Створити функцію для роботи з дин двовимірним рваним масивом(рядки можуть  бути різної довжини): пошук заданого значення у масиві(повертати вказівник на перше входження шуканого чи nullptr, якщо не знайдено).
Я реалізувала її таким чинном:
▼Прихований текст
int * searchFirstEntryElement(int ** mas, int row, int elem)
{
    int *p = NULL;
    for (int i = 0; i < row; ++i)
    {
        int col = mas[i][0];
        int j = 1;
        while (mas[i][j] != elem && j <= col)
            ++j;
        if (j <= col)
        {
            p = &mas[i][j];
            return p;
        }
     }
    return p;
}
int main()
{
...
int find_element;
    cout << "Enter number wich you want find in the matrix: ";
    cin >> find_element;
    int first_entry_elements = *searchFirstEntryElement(numbers, rows, find_element);
    if (first_entry_elements != NULL)
        cout << "The first entry of the desired element: " << first_entry_elements << "\n";
    else
        cout << "The desired element is not found\n";
}
І, власне, сама проблема: якщо елемент знайдено, то працює нормально, а якщо - ні, то програма вилітає. В чому може бути причина?