Динамическое выделение памяти - C (СИ) (75910)
Формулировка задачи:
Здравствуйте!
Хочу часть кода,где динамически выделяется память под массив:
Заменить на код,где вместо 100 в calloc будет стоять число элементов в файле.
Подскажите пожалуйста как это можно сделать...
Пыталась добавлять цикл на подсчёт символов,но ничего не выходит.В чем ошибка?
Листинг программы
- double *darr;
- if ( !(darr = (double *)calloc(100,sizeof(double)) ) )
- {
- fprintf(stderr,"osibka raspredeleniya pamyati!\n");
- }
Листинг программы
- double *darr; // массив символов
- int k=0;
- while (!feof(fin))
- {
- for(int i=0;;i++)
- k=i++;
- }
- if ( !(darr = (double *)calloc(k,sizeof(double)) ) )
- {
- fprintf(stderr,"osibka raspredeleniya pamyati!\n");
- }
Решение задачи: «Динамическое выделение памяти»
textual
Листинг программы
- double *darr; // массив символов
Объяснение кода листинга программы
- Объявляется указатель на массив символов с именем
darr
. - В данном случае, переменная
darr
является указателем, а не самим массивом. - Указатель
darr
пока не указывает на какой-либо блок памяти. - Для того чтобы использовать указатель
darr
как массив, необходимо выделить под него память. - Однако, в данном коде, выделение памяти для указателя
darr
не выполняется. - Поэтому,
darr
не может быть использован для хранения значений типа double. - Переменная
darr
остается пустой и не содержит адреса какого-либо блока памяти. - В результате, попытка использовать
darr
как массив приведет к неопределенному поведению.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д