Funzione che modifica un array di int di dimensione dinamica

di il
3 risposte

Funzione che modifica un array di int di dimensione dinamica

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);

3 Risposte

Devi accedere o registrarti per scrivere nel forum
3 risposte