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