Я пытался создать массив, размер которого будет изменяться во время работы программы.Я узнал о функциях malloc и realloc, но, похоже, я что-то неправильно понимаю.Вот функция, которую я написал, которая создает массив, основанный на том, сколько циклов выполняет цикл.
int* flexibleArray() {
int *arrayFlex = NULL;
int number=0, cnt=0;
while (number!=-1) {
printf("\nInsert the variable: ");
scanf("%d", &number);
if (number==-1){
break;
}
cnt+=1;
arrayFlex = realloc(arrayFlex, cnt * sizeof(int));
arrayFlex[cnt-1] = number;
}
return arrayFlex;
}
Я попытался прочитать документацию по этому поводу, которую нашел в Интернете, но потом не могу получитьновый массив после перераспределения.
int *array;
array = flexibleArray();
int arraySize = (sizeof(array))/(sizeof(int));
for(int i=0; i<arraySize; i++) {
printf("%d ", array[i]);
}
В основном это то место, где я тестирую функцию, чтобы увидеть, выполняет ли она то, что должна.
Я новичок в C, извините, ребята.Спасибо