Вы не можете выделить массив неизвестного размера.Поэтому вам нужно динамически распределять его «во время выполнения».Вы можете сделать это распределение, используя «new» в C ++ или «malloc» в C.
Например:
В C ++, если вы хотите выделить массив неизвестного размера, вы должны сделатьследующее:
int* v_X_array = new int[x];
int i;
for (i=0; i<x; i++)
{
v_X_array[i] = i;
}
Причина, по которой мы используем целочисленный указатель, заключается в том, что «new» возвращает базовый адрес массива, «адрес первого элемента», поэтому единственное, что может хранить адреса, - это указатели.
В C, если вы хотите выделить массив неизвестного размера, вы должны сделать следующее:
int* v_X_array = (int*) malloc(x*sizeof(int));
int i;
for(i=0; i<x; i++)
{
v_X_array[i] = i;
}
Функция malloc
принимает один аргумент, который определяет количество байтов длябыть выделенным и возвращает пустой указатель, поэтому требуется приведение (int *).
Для получения дополнительных объяснений посмотрите следующий раздел:
Если нам нужно выделить массив из 20 целых чисел,может быть следующим: «malloc (20 * sizeof (int))», где 20 - количество выделенных элементов, а sizeof (int) - размер типа, который вы хотите выделить.В случае успеха он возвращает указатель на выделенную память.В случае сбоя возвращается нулевой указатель.
Введите описание изображения здесь