Каков механизм выделения битов под участок памяти - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Кто нибудь знает механику выделения битов под участок памяти? Суть в чем:
  1. Объявил функцию, в ней забрал кусок динамической памяти, вышел из функции, отдал "вверх" ссылку на адрес этого участка. (статики не объявляю, автоматические переменные все схлопнулись).
  2. Зашел в другу функцию, получил в фактически в стек копию той ссылки, играюсь с ней (инкрементируя саму ссылку, уходя в середину участка) копию полученной ссылки умышленно не объявлял.
Хочу узнать сколько осталось позиций между тем участком на котором я сейчас нахожусь и концом динамического куска, возможно так? Есть такая удобная функция, memset, скармливая ей ссылку на текущую позицию в участке (как я понял, не обязательно адрес начала), она может обнулить участок. Откуда ей известен конец участка? Есть какой-то признак конца участка или данная функция забирает инфу от windows-планировщика памяти? Окружение: мастдайка 8, visual studio 12

Решение задачи: «Каков механизм выделения битов под участок памяти»

textual
Листинг программы
char **myRealloc(char **cTextBuffer){
 
    char * tmpCTB;
 
    if ((tmpCTB = (char *)calloc(sizeof(char), (size_t)(bLetterCounter + 1lu))) != NULL) {
        memcpy(tmpCTB, *cTextBuffer, (size_t)bLetterCounter * sizeof(char)); 
 
        free(*cTextBuffer);
        *cTextBuffer = tmpCTB;
    } 
    return cTextBuffer;
}

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

  1. В функции myRealloc принят указатель на строку символов в качестве аргумента.
  2. Выделен новый блок памяти с помощью функции calloc для строки символов, увеличенной на единицу, относительно исходной строки.
  3. Значение bLetterCounter увеличивается на единицу относительно значения, переданного в функцию myRealloc.
  4. Выполняется копирование символов из исходной строки в новую строку с использованием функции memcpy.
  5. В функции free освобождается память, выделенная под исходную строку символов.
  6. В функцию возвращается обновленный указатель на новую строку символов.

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


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

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

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