nixp.ru v3.0

28 марта 2024,
четверг,
17:47:59 MSK

iliya написал 17 декабря 2004 года в 14:37 (840 просмотров) Ведет себя как мужчина; открыл 13 тем в форуме, оставил 196 комментариев на сайте.

Есть два варианта.

Первый:

Создаем список и там малочим память для каждого куска, а потом объеденяем.

Второй:

char* data;

char *new_data;

new_data=(char*) malloc(sizeof(char)*(size+buffer_size));

memcpy(new_data,data,size);

memcpy(new_data+size,buffer,buffer_size);

free(data);

metal

С точки зрения производительности 2-й вариант лучше.

decvar

если число эл-тов известно то лучше char[x][y][MAX_ELEM_SIZE];

iliya
decvar
если число эл-тов известно то лучше char[x][y][MAX_ELEM_SIZE];

Нет не известно.

А почему второй лучше?

Там ведь копирование идет каждый раз.

Fatal
iliya
А почему второй лучше?

потому, что мы выделяем память не под каждый элемент, а только один раз под все элементы. Операция выделения памяти — затратная

iliya

Да, нет там выделений будет много, смысл то в том что это дело в цикле идет.

Но я понял второй лучше.

Последние комментарии

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.