<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: значение переменной в строковом массиве</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/10191.html</link>
    <description>Подскажите пожалуйста.&lt;br&gt;С++&lt;br&gt;&lt;br&gt;char OCR_sh&#091;3&#093;&#091;5&#093;=&#123;&quot;OCR2&quot;,&quot;OCR1A&quot;,&quot;OCR1B&quot;&#125;;&lt;br&gt;&lt;br&gt;например: нужно присвоить значение 100 переменной OCR2 (OCR_sh&#091;0&#093;) и в дальнейшем изменять ее значение&lt;br&gt;OCR_sh&#091;0&#093;=100;&lt;br&gt;Как, какую функцию применить?&lt;br&gt;</description>

<item>
    <title>значение переменной в строковом массиве (pavlinux)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/10191.html#7</link>
    <pubDate>Mon, 04 Dec 2017 20:12:26 GMT</pubDate>
    <description>&amp;gt; Напечатает то ли &lt;br&gt;&lt;br&gt;Ничего не знаю, в ТЗ не было условия про печать :)&lt;br&gt;&lt;br&gt;&amp;gt; то ли... то ли ...то ли &lt;br&gt;&amp;gt; puts(OCR_sh&#091;2&#093;);&lt;br&gt;&lt;br&gt;Такой хак с двухмерным масcивом, превратит его в указатель (начинающейся с адреса OCR_sh&#091;2&#093;&#091;0&#093;), &lt;br&gt;на одномерный массив размером &#091;5&#093;&lt;br&gt;&lt;br&gt;puts((char(*)&#091;5&#093;)OCR_sh&#091;2&#093;);&lt;br&gt;&lt;br&gt;&amp;gt; Намекаешь, что он не поленится проверить длины строк и размеры буферов?&lt;br&gt;&lt;br&gt;Я думаю автор вааааще невдупляет чего творит :)&lt;br&gt;&lt;br&gt;&lt;br&gt;Или препод спецом скопипастил такой гадцкий код. &lt;br&gt;OCR1A, OCR1B - это регистры таймера AVR ATmega&lt;br&gt;http://dfe.petrsu.ru/koi/posob/avrlab/mega16tcnt1.html&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>значение переменной в строковом массиве (ACCA)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/10191.html#6</link>
    <pubDate>Mon, 04 Dec 2017 20:04:34 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Он не может присвоить значение 100 элементу массива OCR_sh&#091;0&#093;, у них тип разный &lt;br&gt;&amp;gt; Я же смог :) В С всё int, кроме float (этот тоже &lt;br&gt;&amp;gt; int, но замороченный) &lt;br&gt;&lt;br&gt;Ты старый жулик, путающий студентов. &quot;100&quot; и 100 - это очень разные вещи.&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; &#091;li&#093; Строки &quot;OCR1A&quot; и &quot;OCR1B&quot; в его примере занимают по 6 байтов, &lt;br&gt;&amp;gt; Пофег сколько занимают, выделено только 3 раза по 5 &lt;br&gt;&lt;br&gt;Ни разу не пофиг, оно же инициализировано. Поэтому&lt;br&gt;   puts(OCR_sh&#091;1&#093;);&lt;br&gt;   puts(OCR_sh&#091;2&#093;);&lt;br&gt;&lt;br&gt;Напечатает то ли &lt;br&gt;   OCR1AOCR1B&lt;br&gt;   OCR1B&lt;br&gt;&lt;br&gt;то ли&lt;br&gt;   OCR1A&lt;br&gt;&lt;br&gt;&lt;br&gt;то ли&lt;br&gt;   OCR1A&lt;br&gt;   OCR1B&lt;br&gt;&lt;br&gt;Это если выравнивание выручит.&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Нед, размер задаётся объявлением: OCR_sh&#091;3&#093;&#091;5&#093; и того 15 раз по CHAR_BIT &lt;br&gt;&lt;br&gt;Потому и можешь наползти 6-байтовыми строками друг на друга, а последней строкой - на что повезёт.&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; Ему нельзя пользоваться strcpy, разобьёт и руки порежет. Только strncpy &lt;br&gt;&amp;gt; если всё под контролем, то можно.&lt;br&gt;&lt;br&gt;Намекаешь, что он не поленится проверить длины строк и размеры буферов?&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>значение переменной в строковом массиве (pavlinux)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/10191.html#5</link>
    <pubDate>Mon, 04 Dec 2017 19:44:25 GMT</pubDate>
    <description>&amp;gt; ... но это немного не то, что хотел.&lt;br&gt;&lt;br&gt;Какой вопрос, такой ответ. :) &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; OCR_sh&#091;3&#093;&#091;5&#093;=&#123;&quot;OCR2&quot;,&quot;OCR1A&quot;,&quot;OCR1B&quot;&#125;; - возможно, это я неверно написал. &lt;br&gt;&lt;br&gt;Ты тут написал двухмерный массив из элементов типа char, если его раскрутить, то выглядеть будет так: &lt;br&gt;&lt;br&gt;&#091;code&#093;OCR_sh&#091;3&#093;&#091;5&#093;= &#123;&#123;&apos;O&apos;,&apos;C&apos;,&apos;R&apos;,&apos;2&apos;,&apos;&#092;0&apos;&#125;, &#123;&apos;O&apos;,&apos;C&apos;,&apos;R&apos;,&apos;1&apos;,&apos;A&apos;,&apos;&#092;0&apos;&#125;, &#123;&apos;O&apos;,&apos;C&apos;,&apos;R&apos;,&apos;1&apos;,&apos;B&apos;,&apos;&#092;0&apos;&#125;&#125;;&#091;/code&#093;&lt;br&gt;  &lt;br&gt;Каждый элемент в кавычках и есть значение переменной, и их 15 штук. &lt;br&gt;100 можно присвоить только одной из них.&lt;br&gt;&lt;br&gt;OCR_sh&#091;0&#093;&#091;0&#093;=100;  &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>значение переменной в строковом массиве (pavlinux)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/10191.html#4</link>
    <pubDate>Mon, 04 Dec 2017 19:35:07 GMT</pubDate>
    <description>&amp;gt; У него нет переменной OCR2&lt;br&gt;&lt;br&gt;AI скорректировал вопрос.&lt;br&gt;&lt;br&gt;&amp;gt; Он не может присвоить значение 100 элементу массива OCR_sh&#091;0&#093;, у них тип разный &lt;br&gt;&lt;br&gt;Я же смог :) В С всё int, кроме float (этот тоже int, но замороченный)  &lt;br&gt;&lt;br&gt;&lt;br&gt;На самом деле, это грязные хаки олдскульных микроконтрольщиков, всех кто пишет &quot;для себя&quot;. &lt;br&gt;&lt;br&gt;Так они коряво объявляют: Есть три строки, не больше 5 байт в каждой   &lt;br&gt;&lt;br&gt;char OCR_sh&#091;3&#093;&#091;5&#093;=&#123;&quot;OCR2&quot;,&quot;OCR1A&quot;,&quot;OCR1B&quot;&#125;;&lt;br&gt;&lt;br&gt;Так они заменяют строки: зато гарантия, что лишнее не попадёт в регистры.  &lt;br&gt;&lt;br&gt;strcpy(OCR_sh&#091;0&#093;, &quot;Вротмне&quot;);&lt;br&gt;strcpy(OCR_sh&#091;1&#093;, &quot;ноги,&quot;);&lt;br&gt;strcpy(OCR_sh&#091;2&#093;, &quot;дайтедве&quot;);&lt;br&gt;&lt;br&gt;Не все компиляторы проверяют размер переменных и матерятся &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; &#091;li&#093; Строки &quot;OCR1A&quot; и &quot;OCR1B&quot; в его примере занимают по 6 байтов, &lt;br&gt;&lt;br&gt;Пофег сколько занимают, выделено только 3 раза по 5  &lt;br&gt;&lt;br&gt;&amp;gt; он уже вылез за границы char&#091;5&#093;. Хорошо, если компилятор углядит и &lt;br&gt;&amp;gt; отругает &lt;br&gt;&lt;br&gt;Нед, размер задаётся объявлением: OCR_sh&#091;3&#093;&#091;5&#093; и того 15 раз по CHAR_BIT &lt;br&gt;&lt;br&gt;&amp;gt; Ему нельзя пользоваться strcpy, разобьёт и руки поре</description>
</item>

<item>
    <title>значение переменной в строковом массиве (creapt)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/10191.html#3</link>
    <pubDate>Mon, 04 Dec 2017 18:50:13 GMT</pubDate>
    <description>OCR2, OCR1B, OCR1A это регистры.&lt;br&gt;Опишу подробнее: нужно регистры поместить в массив, сравнивать и изменять их значения.&lt;br&gt;&lt;br&gt;запись strcpy(OCR_sh&#091;0&#093;, &quot;100&quot;); работает, но это немного не то, что хотел.&lt;br&gt;&lt;br&gt;OCR_sh&#091;3&#093;&#091;5&#093;=&#123;&quot;OCR2&quot;,&quot;OCR1A&quot;,&quot;OCR1B&quot;&#125;; - возможно, это я неверно написал.&lt;br&gt;</description>
</item>

<item>
    <title>значение переменной в строковом массиве (ACCA)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/10191.html#2</link>
    <pubDate>Mon, 04 Dec 2017 17:28:36 GMT</pubDate>
    <description>&#091;li&#093; У него нет переменной OCR2&lt;br&gt;&#091;li&#093; Он не может присвоить значение 100 элементу массива OCR_sh&#091;0&#093;, у них тип разный&lt;br&gt;&#091;li&#093; Строки &quot;OCR1A&quot; и &quot;OCR1B&quot; в его примере занимают по 6 байтов, он уже вылез за границы char&#091;5&#093;. Хорошо, если компилятор углядит и отругает&lt;br&gt;&#091;li&#093; Ему нельзя пользоваться strcpy, разобьёт и руки порежет. Только strncpy&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>значение переменной в строковом массиве (pavlinux)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/10191.html#1</link>
    <pubDate>Mon, 04 Dec 2017 00:47:18 GMT</pubDate>
    <description>&amp;gt; OCR_sh&#091;0&#093;=100; &lt;br&gt;&lt;br&gt;strcpy(OCR_sh&#091;0&#093;, &quot;100&quot;);&lt;br&gt;</description>
</item>

</channel>
</rss>
