История изменений
Исправление Manhunt, (текущая версия) :
А со стоимостью выделения/высвобождения памяти что?
А со стоимостью strlen/memcpy что? Почему длина строки не таскается вместе со строкой, а каждый раз вычисляется заново? Почему строки не copy-on-write с подсчетом ссылок (что позволило бы избежать преждевременного выделения памяти и копирования)? Если мы считаем каждое выделение, то почему в коде не рассмотрен отдельно случай, когда выделять ничего не надо, а можно просто скопировать указатели из аргументов функции в тело структуры (передать владение)?
Вывод: обсуждаемый кусок кода — это перемалывание байтов ради перемалывания байтов, бессмысленное и беспощадное.
Исправление Manhunt, :
А со стоимостью выделения/высвобождения памяти что?
А со стоимостью strlen/memcpy что? Почему длина строки не таскается вместе со строкой, а каждый раз вычисляется заново? Почему строки не copy-on-write с подсчетом ссылок (что позволило бы избежать преждевременного выделения памяти и копирования)? Если мы считаем каждое выделение, то почему в коде не рассмотрен отдельно случай, когда выделять ничего не надо, а можно просто скопировать указатели из аргументов функции в тело структуры (передать владение)?
Вывод: обсуждаемый кусок кода — это перемешивание байтов ради перемешивания байтов, бессмысленное и беспощадное.
Исправление Manhunt, :
А со стоимостью выделения/высвобождения памяти что?
А со стоимостью strlen/memcpy что? Почему длина строки не таскается вместе со строкой, а каждый раз вычисляется заново? Почему строки не copy-on-write с подсчетом ссылок (что позволило бы избежать преждевременного выделения памяти и копирования)? Если мы считаем каждое выделение, то почему в коде не рассмотрен отдельно случай, когда выделять ничего не надо, а можно просто скопировать указатели из аргументов функции в тело структуры (передать владение)?
Исправление Manhunt, :
А со стоимостью выделения/высвобождения памяти что?
А со стоимостью strlen/memcpy что? Почему длина строки не таскается вместе со строкой, а каждый раз вычисляется заново? Почему строки не copy-on-write с подсчетом ссылок (что позволило бы избежать преждевременного выделения памяти и копирования)? Если мы считаем каждое выделение, то почему в коде не рассмотрен отдельно случай, когда выделять ничего не надо, а можно просто скопировать указатели из аргументов функции в тело структуры?
Исправление Manhunt, :
А со стоимостью выделения/высвобождения памяти что?
А со стоимостью strlen/memcpy что? Почему длина строки не таскается вместе со строкой, а каждый раз вычисляется заново? Почему строки не copy-on-write с подсчетом ссылок? Если мы считаем каждое выделение, то почему в коде не рассмотрен отдельно случай, когда выделять ничего не надо, а можно просто скопировать указатели из аргументов функции в тело структуры?
Исправление Manhunt, :
А со стоимостью выделения/высвобождения памяти что?
А со стоимостью strlen/memcpy что? Почему длина строки не таскается вместе со строкой, а каждый раз вычисляется заново? Если мы считаем каждое выделение, то почему в коде не рассмотрен отдельно случай, когда выделять ничего не надо, а можно просто скопировать указатели из аргументов функции в тело структуры?
Исправление Manhunt, :
А со стоимостью выделения/высвобождения памяти что?
А со стоимостью stlren/memcpy что? Почему длина строки не таскается вместе со строкой, а каждый раз вычисляется заново? Если мы считаем каждое выделение, то почему в коде не рассмотрен отдельно случай, когда выделять ничего не надо, а можно просто скопировать указатели из аргументов функции в тело структуры?
Исходная версия Manhunt, :
А со стоимостью выделения/высвобождения памяти что?
А со стоимостью stlen/memcpy что? Почему длина строки не таскается вместе со строкой, а каждый раз вычисляется заново? Если мы считаем каждое выделение, то почему в коде не рассмотрен отдельно случай, когда выделять ничего не надо, а можно просто скопировать указатели из аргументов функции в тело структуры?