Zakładając że to C, to robisz wiele rzeczy bez sensu.
wsk = malloc(sizeof(int));
Alokujesz cały obiekt, a zgaduję że chodziło Ci o to, żeby tab był wskaźnikiem.
realloc(wsk, sizeof(wsk) + sizeof(int));
sizeof(wsk) nie robi tego co myślisz - to tylko daje rozmiar samego wskaźnika.
Ogólny minimalny poprawny kod wyglądałby tak:
#include <stdlib.h>
struct vector {
int *tab;
};
int main(void)
{
struct vector tablica;
tablica.tab = malloc(sizeof(int));
tablica.tab = realloc(tablica.tab, sizeof(int) * 2);
free(tablica.tab);
return 0;
}
(downvote'ującego proszę o komentarz)