беда с CopyBuffer - страница 3

 
Fast235 #:

этот вопрос уже много раз тут задавался, на сколько помню там идет с запасом и по мере надобности массив расширяется

вопрос в том, при расширении или сужении, он же динамический, на него будет ИМХО тратиться одинаковое количество памяти в ОЗУ, а если статичный то уже гораздо меньше

 
HareOFF #:

вопрос в том, при расширении или сужении, он же динамический, на него будет ИМХО тратиться одинаковое количество памяти в ОЗУ, а если статичный то уже гораздо меньше

Вы выделяете память динамическому массиву. Прочтите справку.
 
HareOFF #:

правильно ли я понял

//объявили массив:

double a[1,4]

//-------------------- вызываем CopyBuffer, обращаясь к разным буфера массива 2,3,4,5
CopyBuffer(Handle1,2,0,1,a)
CopyBuffer(Handle1,3,0,1,a)
CopyBuffer(Handle1,4,0,1,a)
CopyBuffer(Handle1,5,0,1,a)

//и массив a[1,4] заполнится автоматически полностью значениями буферов с индикатора последовательно начиная с a[0,0], потом a[0,1], a[0,2] и наконец a[0,3]??? 

double a[1,4],b[1];
//-------------------- вызываем CopyBuffer, обращаясь к разным буфера массива 2,3,4,5
CopyBuffer(Handle1,2,0,1,b);
a[0,0] = b[0];
CopyBuffer(Handle1,3,0,1,b);
a[0,1] = b[0];

 и т.д.

либо в цикле

 
pribludilsa #:
Вы выделяете память динамическому массиву. Прочтите справку.

вы ветку не читали, что CopyByffer оказывается может складывать значения не только в динамический массив, но в статичный. Значит при большой потребности в копировании еденичных данных в массив, можно использовать статичный массив, чтобы не занимать много памяти ОЗУ.

 
Renat Akhtyamov #:

 и т.д.

либо в цикле

Аааааааааааа... понял, что вы имели ввиду. Спасибо за разъяснения)) огромное спасибо!
 
HareOFF #:

вы ветку не читали, что CopyByffer оказывается может складывать значения не только в динамический массив, но в статичный. Значит при большой потребности в копировании еденичных данных в массив, можно использовать статичный массив, чтобы не занимать много памяти ОЗУ.

Это Вы справку не читали, нету разницы между статическими и динамическими массивами. Потому что Вы сами выделяете память для динамического массива.
 
pribludilsa #:
Это Вы справку не читали, нету разницы между статическими и динамическими массивами. Потому что Вы сами выделяете память для динамического массива.

если я вначале объявляю статический массив a[10], или a[], то в ОЗУ под них будет выделено разное количество памяти же.


или вызов функции CopyBuffer выделяет память под динамический массив сама, а если я использую статичный в нем, для хранения данных, то это без разницы, все равно память будет выделена?

 
HareOFF #:

если я вначале объявляю статический массив a[10], или a[], то в ОЗУ под них будет выделено разное количество памяти же.


или вызов функции CopyBuffer выделяет память под динамический массив сама, а если я использую статичный в нем, для хранения данных, то это без разницы, все равно память будет выделена?

ArrayResize

 
pribludilsa #:

ArrayResize

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

 
HareOFF #:

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

При частом распределении памяти рекомендуется использовать третий параметр, задающий резерв для уменьшения количества физического распределения памяти. Все последующие вызовы функции ArrayResize не приводят к физическому перераспределению памяти, а только меняется размер первого измерения массива в пределах зарезервированной памяти.