Не передаётся динамический массив в СИ

Ситуация такая:создаётся массив, с количеством элементов, введённых с клавиатуры, а потом передаётся в функцию, где вычисляется последний отрицательный и выводится, в самой функции, номер и значение, после чего значение передаётся в основную программу и будет использовано. Проблема заключается в том, что массив по неведомым мне причинам не передаётся, в чём проблема не пойму. Подскажите пожалуйста неопытному.

#include <stdio.h> // Подключнение библиотеки для ввода вывода
#include <locale.h>// Подключение библиотеки для использования русского языка в выводе
#include <stdlib.h> // Для рандома
#include <time.h>
#include <malloc.h>


int* TheFunctionOfTheSmallestValue(int size, int* array)
{
    int k = size;


    for (k - 1; k >= 0; k--)
    {
        if(array[k] < 0)
        {
            printf("Последний отрицательный элемент массива %d \n", array[k]);
            printf("Имеет индекс %d \n", k);
            return &k;
        }
    }


    


}
int main(void)
{

    srand(time(NULL));


    setlocale(LC_ALL, "Rus");//Команда для включения русского языка в выводе
    int N1, N2, * lastminA, * lastminB, number;// Выделение памяти под переменные


    printf("Введите размер массива А\n");
    scanf("%d", &N1);
    int* A = new int[N1];
    for (number = 0; number < N1; number++)
    {
        A[number] = rand() % 40 - 20;
        printf("%d\n", A[number]);

    }



    printf("Введите размер массива B\n");
    scanf("%d", &N2);
    int* B = new int[N2];

    for (number = 0; number < N2; number++)
    {
        B[number] = rand() % 40 - 20;
        printf("%d\n", B[number]);
    }

    lastminA = TheFunctionOfTheSmallestValue(N1, A);
    lastminB = TheFunctionOfTheSmallestValue(N2, B);

    printf("%i\n", lastminA);
    printf("%i\n", lastminB);
}

Ответы (0 шт):