Задание размера массива после его объявления во время выполнения программы - C (СИ)
Формулировка задачи:
Ребята, подскажите, как задать размер массиву во время выполнения.
Я напишу пример на java - нужно по аналогии сделать на Си
Идея в том, чтобы другие функции могли ссылаться на глобально объявленный массив и получать его размер с помощью sizeof(), одновременно нужно указать размер массива с помощью scanf().
С помощью такого кода:
естественно, не получается, потому что a хранит указатель на первый элемент массива, а не на сам массив, поэтому sizeof(a) вернет 4, а не 4 * size.
class C { int[] a; ... void someMethod(int size) { a = a[size]; } }
int* a; void someMethod(int size) { int tmp[size]; a = tmp; }
Решение задачи: «Задание размера массива после его объявления во время выполнения программы»
textual
Листинг программы
int *a, size; main() { scanf(%d", &size); a = (int *)malloc(size*sizeof(int)); ...
Объяснение кода листинга программы
- Объявление переменных
a
иsize
- Ввод значения переменной
size
с помощью функции scanf - Выделение памяти под массив
a
с помощью функции malloc ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д