Вопрос программистам - Восьмибуферный многовалютный индикатор с вложенным 7 буферным. - страница 2

 
VladislavVG >>:

Скорее всего Вы не отвели память под массивы - выкладывайте код - будет понятно.

Это старая песня, давно было. Что значит отвести память под массивы?

 
zfs >>:

Это старая песня, давно было. Что значит отвести память под массивы?

код покажите, хотя бы в части описания и заполнения массивов.

Если у Вас описание массива double arr[]; То компилятор массив не размещает (память под него не отводит) и все значения arr[1], arr[2], .... смысла иметь не будут - они могут быть затерты другими данными.

Используя функцию АррайРесайз(arr,100); можно зарезервировать память (разместить динамически) под 100 элементов массива. Тогда затертым может оказаться только arr[100] и дальше.

Или используя описание double arr[100]; Выделить память статически тоже под 100 элементов массива.

Напоминаю нумерация от нуля, следовательно сотый элемент (arr[100] ) - это уже за границей массива.

Успехов.

ЗЫ в индикаторе указатель на массив (в терминах С описание double arr[]; может считаться указателем на массив - то есть демонстрация намерения данный адрес считать началом некой связной области памяти, в которой будут размещны данные указанного типа... о как завернул.. если с С не работали - просто запомните - это еще не массив, а только его "начало"). Да так вот в индикаторах указатели можно связать с областью вывода буферного массива используя фугнкцию  SetIndexBuffer(.....);

 

буферы это и есть массивы

сдвиговые буферы отнимают лишнее процессорное время на поражниковые операции по сдвигу всех ячеек

и чем длиннее такой буфер тем больше отнимает

циклические буферы ничего не сдвигают а управляются курсором (переменная типа int которая указывает текущий адрес начальной ячейки)

 
TheXpert >>:

Даю 95% что проблема не в iCustom, а объединение индюков ничего кроме гемора с массивами и новых ошибок не принесет.

Хотя... нет, все-таки надо смотреть.

Пробовал через iCustom вытащить из Indexes_v8 Хирурга пару буферов для экспериментов. "Вах, ничего сделать не успел, только вошел!", и компьютер стал намертво.

 
iCustom предназначен для новичков ИЛИ при отсутствии исходников
все нужно выполнять в одной микросхеме для надежности и быстродействия
 
sab1uk писал(а) >>

используй многомерные расчетные буферы в циклическом режиме

а индикаторные буферы только для вывода на экран

в своих индикаторах использую выделение памяти под расчетные данные, одномерные массивы..А для вывода использую простую конструкцию типа ArrayCopy(ExternBuff,MyBuff,0,0,Counter);

где Counter - кол-во расчетных данных

ExternBuff - буффер индикатора линии

MyBuff - буффер расчетных данных - который заполняется при выполнении расчета..

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

 
sab1uk >>:
iCustom предназначен для новичков ИЛИ при отсутствии исходников
все нужно выполнять в одной микросхеме для надежности и быстродействия

Ага, пришел проф и все расставил по местам. Этот принцип устарел лет на двадцать.

 
Всем спасибо! Я всё понял.
 
TheXpert >>:

Ага, пришел проф и все расставил по местам. Этот принцип устарел лет на двадцать.

значит я что то пропустил.. ламповые телевизеры штоли появились в продаже?

 

Нее..Суперкомпьютера на ЛАМПАХ НАКАЛЫВАНИЯ...

Причина обращения: