Not reading gpio

Hello all again! Im trying to read gpio state, but the gpio_read() function always returns 0.
mycode (standart SDK):

#include “FreeRTOS.h”
#include <platform_opts.h>
#include <platform_opts_bt.h>
#include “hal.h”
#include “PinNames.h”
#include “rtl8735b_gpio.h”
#include “gpio_api.h”
#include “cmsis_os.h”
#include “rtl8735b_pin_name.h”
#include “stdint.h”
#include “pinmap.h”

#define TOTAL_GPIO_PIN_NUM 30

void *gpio_pin_struct[TOTAL_GPIO_PIN_NUM] = {NULL};

void pin_init(uint32_t ulPin, uint32_t ulMode, uint32_t ulPull)
{
gpio_init(gpio_pin_struct[ulPin], ulPin);
gpio_dir((gpio_t *)gpio_pin_struct[ulPin], ulMode);
gpio_mode((gpio_t *)gpio_pin_struct[ulPin], ulPull);
}

void digitalWrite(uint32_t ulPin, uint32_t ulVal)
{
gpio_t *pGpio_t;
pGpio_t = (gpio_t *)gpio_pin_struct[ulPin];
gpio_write(pGpio_t, ulVal);
}

int digitalRead(uint32_t ulPin)
{
gpio_t *pGpio_t;
pGpio_t = (gpio_t *)gpio_pin_struct[ulPin];
return gpio_read(pGpio_t);
}

void main(void)
{
pin_init(PF_15, PIN_INPUT, PullDown);
pin_init(PE_6, PIN_OUTPUT, PullNone);

while (1)
{
	if (digitalRead(PF_15) == 0)
		{
			digitalWrite(PE_6, 0);
		}

	else
		{
			digitalWrite(PE_6, 1);
		}
}

}

Thanks to the missing examples for the standard SDK, when transferring the function from Arduino, I did not allocate memory. Example with a working reading input:
void pin_init(uint32_t ulPin, uint32_t ulMode, uint32_t ulPull)

{

gpio_pin_struct[ulPin] = malloc(sizeof(gpio_t));

gpio_init(gpio_pin_struct[ulPin], ulPin);

gpio_dir((gpio_t *)gpio_pin_struct[ulPin], ulMode);

gpio_mode((gpio_t *)gpio_pin_struct[ulPin], ulPull);

}