>>330802720 Цикл там внутри и есть, просто он спрятан. Всю работу по инициализации второго массива делает 20-я строчка в дизассемблере. Это вызов memcpy, которая реализована через цикл.
>>330797126 (OP) Ну так не делай так, ёпта. Вместо массива можешь к структуре поинтер хранить, а можешь глобал бафер сделать и в структуре хранить баунды для того где этой структуре положено хранить
>>330803617 А чё сложного? Это сложнее чем арифметика с указателями? Или это сложнее... чем что? Если тебе надо чтобы умный компилятор за тебя решил, что лучше массив хранить как референс и делать только неглубокую копию, то тогда тебе лучше выбрать язык в котором так устроено по дефолту. В Сях - что написал то и получай ( хотя тоже не всегда гарантия я слышал)
>>330804212 ну естественно сложней чем просто арифметика с указателями, тебе надо хранить глобальный трек на все указатели на этот буфер, либо писать функцию которая принимает на вход эти структуры и сама высчитывает валидные границы, короче вообще не понимаю как люди в сях со строками работают или картинками и прочей залупонью которой память нужна
>>330804606 Зачем тебе хранить трек на все указатели на буфер? Ты его чё собрался деблокировать? Зачем? Если он глобальный то просто реюзай его на другие структуры, просто мемсеть на ноль его - и будет тебе типо фри но не фри. И буфер в кеше всегда, и к операционке лишний раз не обращаешься для алока
struct BigBuffer {
char data[1000000]; // структура с большим массивом
};
struct BigBuffer a, b;
b = a; // ОЙ! Копируется 1 МБ