<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: char **str = malloc.... пытаюсь научиться использовать динамиче</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8518.html</link>
    <description>&lt;br&gt;   int i;&lt;br&gt;   char **str = (char**) malloc (10 * sizeof(char*));&lt;br&gt;&lt;br&gt;   for( i = 0; i &amp;lt; 10; i++ )&lt;br&gt;      &#123;&lt;br&gt;        str&#091;i&#093; = (char*) malloc (256 * sizeof(char));&lt;br&gt;        strcpy(str&#091;i&#093;,&quot;myxa&quot;);&lt;br&gt;      &#125;&lt;br&gt;&lt;br&gt;  for( i = 0; i &amp;lt; 10; i++ )&lt;br&gt;      &#123;&lt;br&gt;       free(str&#091;i&#093;);&lt;br&gt;      &#125;&lt;br&gt;  free(str);&lt;br&gt;&lt;br&gt;кусок выше работает&lt;br&gt;если сделать присвоение то на этапе запуска прога улетает в дамп &lt;br&gt;str&#091;i&#093;=&quot;myxa&quot;;&lt;br&gt;</description>

<item>
    <title>char **str = malloc.... пытаюсь научиться использовать динам... (myxa)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8518.html#5</link>
    <pubDate>Thu, 19 Nov 2009 10:45:27 GMT</pubDate>
    <description>&amp;gt;А не проще stl? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;std::vector&amp;lt;std::string&amp;gt; strv;&lt;br&gt;&amp;gt;strv.resize(10); &lt;br&gt;&amp;gt;for (int i=0; i&amp;lt;10; i++) &lt;br&gt;&amp;gt; strv&#091;i&#093; = &quot;myxa&quot;; &lt;br&gt;&lt;br&gt;Проще ... спору нет... но не панимая основ далеко не уедешь&lt;br&gt;</description>
</item>

<item>
    <title>char **str = malloc.... пытаюсь научиться использовать динам... (phpcoder)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8518.html#4</link>
    <pubDate>Thu, 19 Nov 2009 10:44:03 GMT</pubDate>
    <description>&amp;gt;А не проще stl? &lt;br&gt;&lt;br&gt;К сожалению, автор не указал на чем он пишет -- С или С++ (и можно ли ему использовать STL).&lt;br&gt;&lt;br&gt;&lt;br&gt;P.S. кстати это&lt;br&gt;&lt;br&gt;&amp;gt;        str&#091;i&#093; = (char*) malloc (256 * sizeof(char));&lt;br&gt;&amp;gt;        strcpy(str&#091;i&#093;,&quot;myxa&quot;);&lt;br&gt;&lt;br&gt;можно заменить на&lt;br&gt;&lt;br&gt;&amp;gt;        str&#091;i&#093; = strdup(&quot;myxa&quot;);&lt;br&gt;&lt;br&gt;Ну и результат malloc() (или strdup()) неплохо бы проверять также.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>char **str = malloc.... пытаюсь научиться использовать динам... (Аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8518.html#3</link>
    <pubDate>Thu, 19 Nov 2009 10:39:43 GMT</pubDate>
    <description>А не проще stl?&lt;br&gt;&lt;br&gt;std::vector&amp;lt;std::string&amp;gt; strv;&lt;br&gt;strv.resize(10);&lt;br&gt;for (int i=0; i&amp;lt;10; i++)&lt;br&gt; strv&#091;i&#093; = &quot;myxa&quot;;&lt;br&gt;</description>
</item>

<item>
    <title>char **str = malloc.... пытаюсь научиться использовать динам... (myxa)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8518.html#2</link>
    <pubDate>Thu, 19 Nov 2009 10:34:56 GMT</pubDate>
    <description>&amp;gt;&amp;gt;кусок выше работает &lt;br&gt;&amp;gt;&amp;gt;если сделать присвоение то на этапе запуска прога улетает в дамп &lt;br&gt;&amp;gt;&amp;gt;str&#091;i&#093;=&quot;myxa&quot;; &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Потому что при присвоении строки вы присваиваете не строку, а адрес на &lt;br&gt;&amp;gt;эту строку. Причем, эта строка константная и находится в специальном сегменте &lt;br&gt;&amp;gt;памяти, доступном только для чтения. Вызывать для этого указателя free() это &lt;br&gt;&amp;gt;ошибка, которая и приводит к аварийному завершению программы. &lt;br&gt;&lt;br&gt;Спасибо!!!!&lt;br&gt;</description>
</item>

<item>
    <title>char **str = malloc.... пытаюсь научиться использовать динам... (phpcoder)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8518.html#1</link>
    <pubDate>Thu, 19 Nov 2009 10:32:09 GMT</pubDate>
    <description>&amp;gt;кусок выше работает &lt;br&gt;&amp;gt;если сделать присвоение то на этапе запуска прога улетает в дамп &lt;br&gt;&amp;gt;str&#091;i&#093;=&quot;myxa&quot;; &lt;br&gt;&lt;br&gt;Потому что при присвоении строки вы присваиваете не строку, а адрес на эту строку. Причем, эта строка константная и находится в специальном сегменте памяти, доступном только для чтения. Вызывать для этого указателя free() это ошибка, которая и приводит к аварийному завершению программы.&lt;br&gt;</description>
</item>

</channel>
</rss>
