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