Главное, что вам, вероятно, нужно, это объявить параметр push
как int **ptr
, присвоить *ptr
и вызвать его с помощью &ptr
.
Вы также не нуждаетесь в кастах и некоторых других вещах, я мог бы предложить:
int i=0;
void push(int **ptr)
{
*ptr = i++ == 0 ? calloc(1,sizeof(int)) : realloc(ptr,sizeof(int)*(i+1));
}