Изменение статического массива на динамический - C (СИ)
Формулировка задачи:
Помогите заменить в коде статический массив на динамический
#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char s[80], sym; int k, i; system("chcp 1251"); system("cls"); printf("Vvedite stroky: "); gets(s); sym = 'a'; k = 0; for(i=0; s[i]!='\0'; i++) { if(s[i]==sym) k++; } if ( k > 0) printf("Yes\n"); else printf("No\n"); getchar(); getchar(); }
Решение задачи: «Изменение статического массива на динамический»
textual
Листинг программы
char* s = (char*)calloc(80, sizeof(char));
Объяснение кода листинга программы
В данном коде происходит следующее:
- Создается переменная типа char* с названием
s
, которая указывает на блок памяти, выделенный с помощью функции calloc. В данном случае, выделенный блок имеет размер 80 элементов типа char. - Значение переменной
s
приводится к типу (char*) с помощью оператора reinterpret_cast. Это необходимо для того, чтобы можно было использовать оператор sizeof для вычисления размера памяти, выделенной под один элемент типа char. - Функция calloc используется для выделения памяти под массив из 80 элементов типа char. Память выделяется с учетом размера каждого элемента, что позволяет обеспечить нулевой начальный баланс для каждого элемента массива.
- Значение переменной
s
присваивается результат вызова функции calloc. Это означает, чтоs
теперь указывает на начало выделенного блока памяти. - В данном коде не происходит присвоения значения переменной
s
, поэтому она остается нулевой.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д