Изменение статического массива на динамический - 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));

Объяснение кода листинга программы

В данном коде происходит следующее:

  1. Создается переменная типа char* с названием s, которая указывает на блок памяти, выделенный с помощью функции calloc. В данном случае, выделенный блок имеет размер 80 элементов типа char.
  2. Значение переменной s приводится к типу (char*) с помощью оператора reinterpret_cast. Это необходимо для того, чтобы можно было использовать оператор sizeof для вычисления размера памяти, выделенной под один элемент типа char.
  3. Функция calloc используется для выделения памяти под массив из 80 элементов типа char. Память выделяется с учетом размера каждого элемента, что позволяет обеспечить нулевой начальный баланс для каждого элемента массива.
  4. Значение переменной s присваивается результат вызова функции calloc. Это означает, что s теперь указывает на начало выделенного блока памяти.
  5. В данном коде не происходит присвоения значения переменной s, поэтому она остается нулевой.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы