Vorrei scrivere una funzione che ha come argomento il riferimento ad un array di interi(dichiarato nel main) e la sua dimensione massima, la dimensione di questo viene aumentata fino a che l`utente non inserisce come numero zero.
Solo che quando richiamo la realloc ho un eccezione, ho provato a debaggare ma senza successo.
Funzione
int input_array_dynamic(int **arrayV1, int size_array_max)
{
int num_tmp = 9999, index=0, current_size=0;
current_size = index + 1;
for (int i = 0;(i<size_array_max)&&(num_tmp != 0);i++)
{
printf("\nInsert array[%d]", index);
num_tmp = input_integer_positive();
if(num_tmp!=0)
{
if (index == 0)
{
(*arrayV1) = (int*)malloc(sizeof(int));
(*arrayV1)[index] = num_tmp;
}
else
{
(*arrayV1) = (int*)realloc(arrayV1, ((sizeof(int))*(current_size + 1)));
(*arrayV1)[index] = num_tmp;
}
index++;
}
}
print_array(*arrayV1, index);
return index;
}
main
int *arrayV1=NULL, size_array = 0, size_array_max=10;
size_array = input_array_dynamic(&arrayV1, size_array_max);