<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414605&amp;view=findpost&amp;p=3795590</guid>
        <pubDate>Sun, 14 Apr 2019 15:35:37 +0000</pubDate>
        <title>range check error при заполнении буфера</title>
        <link>https://forum.sources.ru/index.php?showtopic=414605&amp;view=findpost&amp;p=3795590</link>
        <description><![CDATA[MBo: TComplexArray объявлен как массив<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; TComplexArray &nbsp;= array[0..0] of TComplex;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
поэтому RangeCheck справедливо возмущается<br>
<br>
Но ничего не мешает объявить его как<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; TComplexArray &nbsp;= array[word] of TComplex;</div></ol></div></div></div></div><br>
или <br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; TComplexArray &nbsp;= array[0.. MaxInt div SizeOf(TComplex)] of TComplex;</div></ol></div></div></div></div><br>
<br>
Или использовать динамические массивы с SetLength (но тут нужно следить, не используется ли где-то указатель на массив)<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; TComplexArray &nbsp;= array of TComplex;</div></ol></div></div></div></div>]]></description>
        <author>MBo</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414605&amp;view=findpost&amp;p=3795586</guid>
        <pubDate>Sun, 14 Apr 2019 14:29:06 +0000</pubDate>
        <title>range check error при заполнении буфера</title>
        <link>https://forum.sources.ru/index.php?showtopic=414605&amp;view=findpost&amp;p=3795586</link>
        <description><![CDATA[diakin: Hi&#33;<br>
В процедуре для вычисления FFT<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure MakeFFT; &nbsp;{Процедура самого преобразования}</div><div class="code_line">&nbsp;var</div><div class="code_line">&nbsp;&nbsp;fftb: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TFFTBase; //класс, который реализует БПФ</div><div class="code_line">&nbsp;&nbsp;fFFTComplBuf: &nbsp;^TComplexArray; &nbsp;//Буфер для хранения комплексных величин</div><div class="code_line">&nbsp;&nbsp;i: integer;</div><div class="code_line">&nbsp;begin</div><div class="code_line">&nbsp;&nbsp;GetMem(fFFTComplBuf, BufSize*SizeOf(TComplex)); //Выделение памяти под массив</div><div class="code_line">&nbsp;</div><div class="code_line">for i:=0 to BufSize-1 do //Заполняем данными массив</div><div class="code_line">&nbsp;&nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;fFFTComplBuf[i].Re := fDataBuf[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp;fFFTComplBuf[i].Im := 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;fftb:=TFFTBase.Create(nil);</div></ol></div></div></div></div><br>
В цикле заполнения массива выскакивает ошибка <strong class='tag-b'>range check error</strong> при i&gt;0<br>
Если в свойствах компилятора (D7) снять галку &quot;Range checking&quot;, то никаких ошибок не возникает.<br>
Это глюк компилятора?]]></description>
        <author>diakin</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	