Задание размера массива после его объявления во время выполнения программы - 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 ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д