<?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=469690&amp;view=findpost&amp;p=3932273</guid>
        <pubDate>Thu, 27 Nov 2025 10:03:19 +0000</pubDate>
        <title>Структура с изменяющимся размером массивов.</title>
        <link>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932273</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=469690&view=findpost&p=3932272'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2025-11-27T12:38:17+03:00">27.11.25, 09:38</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=469690&view=findpost&p=3932271'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Majestio &#064; <time class="tag-quote__quoted-time" datetime="2025-11-27T09:18:49+00:00">27.11.25, 09:18</time></span><div class='quote '>Не очень решение.</div></div><br>
Да, согласен. Просто немного дополнил/поправил утверждение о невозможности.</div></div><br>
Ааа ... ну так-то, да.]]></description>
        <author>Majestio</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932272</guid>
        <pubDate>Thu, 27 Nov 2025 09:38:17 +0000</pubDate>
        <title>Структура с изменяющимся размером массивов.</title>
        <link>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932272</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=469690&view=findpost&p=3932271'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Majestio &#064; <time class="tag-quote__quoted-time" datetime="2025-11-27T09:18:49+00:00">27.11.25, 09:18</time></span><div class='quote '>Не очень решение.</div></div><br>
Да, согласен. Просто немного дополнил/поправил утверждение о невозможности.]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932271</guid>
        <pubDate>Thu, 27 Nov 2025 09:18:49 +0000</pubDate>
        <title>Структура с изменяющимся размером массивов.</title>
        <link>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932271</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=469690&view=findpost&p=3932232'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2025-11-26T18:40:01+00:00">26.11.25, 18:40</time></span><div class='quote '>Если речь про Си, то условно можно. По крайней мере с C99 (да и до того делали, но чуть иначе). Это называется flexible array member</div></div><br>
Не очень решение. Есть куча ограничений:<br>
<br>
<ol class="tag-list" type="1"><li>Гибкий массив должен быть последним членом структуры</li><li>В структуре должен быть хотя бы один именованный член до него</li><li>Размер [] должен быть пустым - не int data[0] и не int data[1]</li><li>Нельзя создавать объекты структуры напрямую на стеке с автоматическим размером</li></ol><br>
На Си самый вменяемый вариант - это вариант Qraizer&#39;а.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=469690&view=findpost&p=3932235'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>sharky72 &#064; <time class="tag-quote__quoted-time" datetime="2025-11-26T20:05:57+00:00">26.11.25, 20:05</time></span><div class='quote '>Думаю надо сначала определиться с теми данными которые предстоит хранить. А уж потом думать КАК их хранить.</div></div><br>
Вот это - <span class="tag-color" data-value="d4af37" style="color: #d4af37">золотые слова</span> (#d4af37). Только вот слёту рекомендовать <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">std::variant</span></span> (наверное в связке с <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">std::visit</span></span>) - имхо, слишком самоуверенное решение ;)  Из постановки задачи не ясно чо надо в итоге. На шаблонах имеем статический полиморфизм и скорость, на наследовании и использования виртуальных функций - имеем меньшую скорость, но большую гибкость. Например, создание плагинов без необходимости полной пересборки проекта. Ибо рантайм тоже рулид&#33;]]></description>
        <author>Majestio</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932235</guid>
        <pubDate>Wed, 26 Nov 2025 20:05:57 +0000</pubDate>
        <title>Структура с изменяющимся размером массивов.</title>
        <link>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932235</link>
        <description><![CDATA[sharky72: В любом случае все сводится к хранению указателей или ссылок на другие структуры. Будь то void** или std::vector&lt;std::variant&gt;<br>Думаю надо сначала определиться с теми данными которые предстоит хранить. А уж потом думать КАК их хранить.]]></description>
        <author>sharky72</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932232</guid>
        <pubDate>Wed, 26 Nov 2025 18:40:01 +0000</pubDate>
        <title>Структура с изменяющимся размером массивов.</title>
        <link>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932232</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=469690&view=findpost&p=3932081'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2025-11-24T14:57:14+00:00">24.11.25, 14:57</time></span><div class='quote '>Невозможно иметь структуру неопределённого размера.</div></div><br>
Если речь про Си, то условно можно. По крайней мере с C99 (да и до того делали, но чуть иначе). Это называется flexible array member<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">struct A {</div><div class="code_line">&nbsp;&nbsp; &nbsp;size_t len;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int data[];</div><div class="code_line">};</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
<br>
Ну и дальше malloc&#39;ом или аналогом выделяем нужную память под объект такой структуры и элементы массива<br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2025-11-26T18:42:48+00:00">26.11.25, 18:42</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=469690&view=findpost&p=3932084'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Yuriy48 &#064; <time class="tag-quote__quoted-time" datetime="2025-11-24T15:35:09+00:00">24.11.25, 15:35</time></span><div class='quote '>Пока выход вижу один. В функции кейсами выбирать нужную структуру.</div></div><br>
Я думаю, что это будет неудачный дизайн. Лучше использовать динамическое выделение памяти для массивов и хранить отдельно размер. Это если Си. Если плюсы, то std::vector или другой подходящий контейнер]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932188</guid>
        <pubDate>Wed, 26 Nov 2025 08:49:03 +0000</pubDate>
        <title>Структура с изменяющимся размером массивов.</title>
        <link>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932188</link>
        <description><![CDATA[B.V.: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=469690&view=findpost&p=3932080'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Yuriy48 &#064; <time class="tag-quote__quoted-time" datetime="2025-11-24T14:20:02+00:00">24.11.25, 14:20</time></span><div class='quote '>а иначе мне не понятно как организовать такую работу</div></div><br>
Массивы в указатели и динамическое выделение с записью размера выделенной памяти в поле структуры.]]></description>
        <author>B.V.</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932098</guid>
        <pubDate>Tue, 25 Nov 2025 07:41:07 +0000</pubDate>
        <title>Структура с изменяющимся размером массивов.</title>
        <link>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932098</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=469690&view=findpost&p=3932084'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Yuriy48 &#064; <time class="tag-quote__quoted-time" datetime="2025-11-24T15:35:09+00:00">24.11.25, 15:35</time></span><div class='quote '>Пока выход вижу один. В функции кейсами выбирать нужную структуру.</div></div><br>
Возможны варианты.<br>
Напрмер, используем один тип и размер структуры.<br>
Для этого для всех массивов назначаем максимально<br>
возможный размер. В структуру добавляем параметры, указывающие<br>
размеры используемой части массивов.<br>
При таком алгоритме работы можно будет легко менять размеры<br>
в пределах допустимого.]]></description>
        <author>ЫукпШ</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932084</guid>
        <pubDate>Mon, 24 Nov 2025 15:35:09 +0000</pubDate>
        <title>Структура с изменяющимся размером массивов.</title>
        <link>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932084</link>
        <description><![CDATA[Yuriy48: Спасибо за ответ. Главное, что узнал что &quot;Невозможно иметь структуру неопределённого размера.&quot; Остальное, что Вами изложено, с моим уровнем знания СИ, в меня не вмещается. Пока выход вижу один. В функции кейсами выбирать нужную структуру.]]></description>
        <author>Yuriy48</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932081</guid>
        <pubDate>Mon, 24 Nov 2025 14:57:14 +0000</pubDate>
        <title>Структура с изменяющимся размером массивов.</title>
        <link>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932081</link>
        <description><![CDATA[Qraizer: Невозможно иметь структуру неопределённого размера. Как и у любого типа данных, sizeof() структуры должен быть чётко определён. Если нужны разные структуры, это должны быть и разные типы данных. Иначе... внимание, вопрос: попробуй создать экземпляр своей структуры. Два раза, с разными размерами.<br>
На Cях, это может быть достигнуто динамическими массивами:<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">struct Ris_No_podlogka</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;uint16_t **info;</div><div class="code_line">&nbsp;&nbsp;size_t sz1info;</div><div class="code_line">&nbsp;&nbsp;size_t sz2info;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;uint16_t *Color_Nabor;</div><div class="code_line">&nbsp;&nbsp;size_t szColor_Nabor;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;uint8_t *N_Pix_N_Color;</div><div class="code_line">&nbsp;&nbsp;size_t szN_Pix_N_Color;</div><div class="code_line">};</div></ol></div></div></div></div>на Плюсах легко достигается контейнерами вроде std::vector&lt;&gt;, которые умеют хранить свой размер и управлять им.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932080</guid>
        <pubDate>Mon, 24 Nov 2025 14:20:02 +0000</pubDate>
        <title>Структура с изменяющимся размером массивов.</title>
        <link>https://forum.sources.ru/index.php?showtopic=469690&amp;view=findpost&amp;p=3932080</link>
        <description><![CDATA[Yuriy48: Имеется структура с массивами, скажем, такая:<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">struct Ris_No_podlogka</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;uint16_t info[][]; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;uint16_t Color_Nabor[];</div><div class="code_line">&nbsp;&nbsp; &nbsp;uint8_t N_Pix_N_Color[];</div><div class="code_line">&nbsp;&nbsp;};</div></ol></div></div></div></div><br>
Размерность массивов намеренно не определил, поскольку она может быть разная. Планирую иметь несколько файлов *.h, в которых будут находится конкретные данные в соответствии этой структурой, но разные по размерности. Эти данные нигде не подвергаются изменениям, просто используются. Далее в main.c будет находиться функция, работающая с этими данными. Если бы данные были одинакового размера, то и этой бы темы не было, а иначе мне не понятно как организовать такую работу, в основном это касается упомянутой функции, имеется ввиду передача в неё данных конкретной структуры.]]></description>
        <author>Yuriy48</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	