Cześć, próbuje zrobić program, który wyszukuje liczby pierwsze w podanym przedziale sitem Eratostenesa. Zrobiłem to na normalnej tablicy, ale w zadaniu musi być użyta tablica dynamiczna. Spróbowałem tak to zrobić, działa, ale wyskakuje jakiś błąd, prawdopodobnie związany z pamięcią, ale nie wiem z czego wynika i nie umiem się tego dopatrzeć. Z góry dziękuję za pomoc ```c
#include "pch.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int a, b, limit, i, j;
printf("Podaj przedzial\n");
scanf_s("%d", &a);
scanf_s("%d", &b);
int *tablica = (int*)malloc(b*sizeof(int));
limit = floor(sqrt(b));
//inicjuj tablice
for (i = 1, j = a ; i <= b; i++, j++) tablica[i] = j;
//algorytm - sito eratostenesa
for (i = 2; i <= limit; i++)
{
if (tablica[i] != -1)
{
j = i + i;
while (j <= b)
{
tablica[j] = -1;
j += i;
}
}
}
//wypisz wynik
printf("Liczby pierwsze z zakresu od %d do %d\n\n", a, b);
for (i = a; i <= b; i++) if (tablica[i] != -1) printf("%d, ", i);
free(tablica);
return 0;
}