Комментарии 12
спасибо, интересно, удаление по индексу можно улучшить применив pos пропустив выбранный елемент, вставив после pos, хотя как оно работает на низком уровне не знаю, или если это 1 елемент там есть memmove она пропустит выбранный елемент(ну тоесть можно через memcpy или memmove)
Скрытый текст
memmove(b->line[cursor_Line]->data + (cursor_Pos - 1),
b->line[cursor_Line]->data + cursor_Pos,
strlen(b->line[cursor_Line]->data)-(cursor_Pos-1));838116 тут еще правда про строки, но тоже интересно
Странно, по крайней мере вот тут https://metanit.com/c/tutorial/5.8.php практически то же самое, только 2023 года
void *malloc(unsigned s);
По-моему, там size_t, а не unsigned, не? Вдобавок, определись, это:
Выделяет память длиной в s байт и возвращает указатель на начало выделенной памяти.
Или это;
Параметры: size - количество байт для выделения
Уж о пунктуации не говорю, статью дальше не читаю ;)
В современных ОС malloc() никогда не вернет NULL. Там другая система проверки доступности указателя.
Информация из достаточно достоверного источника
https://learn.microsoft.com/ru-ru/cpp/c-runtime-library/reference/malloc?view=msvc-170
В современных ОС malloc() никогда не вернет NULL.
Довольно смелое утверждение. На чём оно основано?
Там другая система проверки доступности указателя.
И какая же, потрудитесь рассказать? Без объяснений выглядит как дезинформация.
https://arxiv.org/abs/2208.08484
Там исследование с итогами как "краткая выжимка". А вообще много уже написано и тут и по миру про современную отработку OOM
Очень странное решение хранить сам vector (не только данные на которые он ссылается) в динамической памяти. Там 2 числа и указатель. Такое отлично живёт на стеке
vector* createVector()
{
// ....
vector* arr = malloc(sizeof(vector));

Динамическая память и реализация динамического массива в C