<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
					xmlns:content="http://purl.org/rss/1.0/modules/content/"
					xmlns:wfw="http://wellformedweb.org/CommentAPI/"
					xmlns:atom="http://www.w3.org/2005/Atom"
				  >
<channel>
<atom:link rel="self"  type="application/rss+xml"  href="http://rulinux.net/rss_from_sect_4_subsect_6_thread_33187"  />
<title>rulinux.net - Форум - Development - [C] Указатель на указатель на ...</title>
<link>http://rulinux.net/</link>
<description><![CDATA[Портал о GNU/Linux и не только]]></description>
<image><title>rulinux.net - Форум - Development - [C] Указатель на указатель на ...</title>
<link>http://rulinux.net/</link>
<url>http://rulinux.net/rss_icon.png</url>
</image>
<item>
<title>Re: [C] Указатель на указатель на ...</title>
<link>https://rulinux.net/message.php?newsid=33187&amp;page=1#89647</link>
<guid>https://rulinux.net/message.php?newsid=33187&amp;page=1#89647</guid>
<pubDate>Thu, 21 Apr 2011 12:43:55 +0400</pubDate>
<description><![CDATA[<p>зойчем тебе на русском? Там всё просто. В сях нету многомерных массивов, совсем. Ты передаёшь одномерный массив, в котором каждый элемент является одномерным массивом. При адресации элемента например a[1][1] к указателю на первый элемент массива a[0][0] прибавляется смещение, то есть вычисляется сначала первый элемент "внутреннего" массива, и это смещение зависит от его ширины w: a+w*1+1. Поэтому либо ширина "внутреннего" массива должна быть задана на момент компиляции, либо просто передаёшь в функцию указатель на первый элемент, ширину массива, а в функции вместо оператора массива используешь явную арифметику указателей, то есть вместо a[1][1] так и пишешь, *(a+w*1+1).</p>]]></description>
</item>
<item>
<title>Re: [C] Указатель на указатель на ...</title>
<link>https://rulinux.net/message.php?newsid=33187&amp;page=1#89646</link>
<guid>https://rulinux.net/message.php?newsid=33187&amp;page=1#89646</guid>
<pubDate>Wed, 20 Apr 2011 08:00:27 +0400</pubDate>
<description><![CDATA[<p><i>> это же ФАКовский вопрос, чего учебников не читаешь?</i><br> Я искал на русском, но ничего внятного не нашёл.</p><p>Вот рабочий вариант (публикую прежде всего для себя): <fieldset><legend>c</legend><code><br />
<span style="color: #339933;">#include stdio.h</span><br />
<span style="color: #339933;">#include stdint.h</span><br />
<span style="color: #993333;">const</span> uint8_t string_super<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><span style="color: #ff0000;">'П'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'р'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'и'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'в'</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><span style="color: #ff0000;">'е'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'т'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">','</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">' '</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><br />
<span style="color: #993333;">const</span> uint8_t string_hyper<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><span style="color: #ff0000;">'л'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'о'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'р'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'э'</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><span style="color: #ff0000;">'н'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'г'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'!'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'!'</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><span style="color: #ff0000;">'!'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'!'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'!'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><br />
<span style="color: #993333;">const</span> uint8_t <span style="color: #009900;">&#40;</span><span style="color: #339933;">*</span>string_global<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>4<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp;<span style="color: #666666; font-style: italic;">// указатель на массив</span><br />
uint8_t string_global_lenght<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #993333;">void</span> init <span style="color: #009900;">&#40;</span><span style="color: #993333;">const</span> uint8_t <span style="color: #009900;">&#40;</span><span style="color: #339933;">*</span>msg<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>4<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> uint8_t len<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; string_global<span style="color: #339933;">=</span>msg<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; string_global_lenght<span style="color: #339933;">=</span>len<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #993333;">void</span> output <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; uint8_t n<span style="color: #339933;">,</span>m<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span>n <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> n <span style="color: #339933;">&lt;</span> string_global_lenght<span style="color: #339933;">;</span> n<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span>m <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> m <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">4</span><span style="color: #339933;">;</span> m<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span style="color: #000066;">printf</span></a><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%c&quot;</span><span style="color: #339933;">,</span>string_global<span style="color: #009900;">&#91;</span>n<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>m<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #993333;">int</span> main <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; init<span style="color: #009900;">&#40;</span>string_super<span style="color: #339933;">,</span>2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; output<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; init<span style="color: #009900;">&#40;</span>string_hyper<span style="color: #339933;">,</span>3<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; output<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
&nbsp;</code></fieldset></p><p>Компилируется без ошибок и предупреждений, выводит <fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1"><li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;>./a.out <li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;Привет, лорэнг!!!!!</ol></fieldset></p>]]></description>
</item>
<item>
<title>Re: [C] Указатель на указатель на ...</title>
<link>https://rulinux.net/message.php?newsid=33187&amp;page=1#89645</link>
<guid>https://rulinux.net/message.php?newsid=33187&amp;page=1#89645</guid>
<pubDate>Wed, 20 Apr 2011 01:29:33 +0400</pubDate>
<description><![CDATA[<p>это же ФАКовский вопрос, чего учебников не читаешь?</p><p>&nbsp;<a href="http://c-faq.com/aryptr/pass2dary.html">http://c-faq.com/aryptr/pass2dary.html</a></p><p>&nbsp;<a href="http://c-faq.com/aryptr/ary2dfunc2.html">http://c-faq.com/aryptr/ary2dfunc2.html</a> </p>]]></description>
</item>
<item>
<title>Re: [C] Указатель на указатель на ...</title>
<link>https://rulinux.net/message.php?newsid=33187&amp;page=1#89644</link>
<guid>https://rulinux.net/message.php?newsid=33187&amp;page=1#89644</guid>
<pubDate>Tue, 19 Apr 2011 18:41:40 +0400</pubDate>
<description><![CDATA[<p><i>> А, ну и вообще не делай так. Объявляй str как *str[] = {...</i><br> Мне нужен не массив указателей, а реально двумерный массив. Я потом буду поэлементно с содержимым работать.</p>]]></description>
</item>
<item>
<title>Re: [C] Указатель на указатель на ...</title>
<link>https://rulinux.net/message.php?newsid=33187&amp;page=1#89643</link>
<guid>https://rulinux.net/message.php?newsid=33187&amp;page=1#89643</guid>
<pubDate>Tue, 19 Apr 2011 18:32:18 +0400</pubDate>
<description><![CDATA[<p><i>> у тебя однобайтная кодировка чтоли?</i><br> Я для микроконтроллера пишу, там вообще не строки, а массив байт. Вот что я примерно хочу:</p><p><fieldset><legend>c</legend><code><br />
uint8_t <span style="color: #339933;">**</span>global_ptr<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// указатель на указатель на uint8_t</span><br />
uint8_t a<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>4<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span>...<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span>...<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>...<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// инициализирован реальными данными</span><br />
uint8_t b<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>4<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span>...<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span>...<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>...<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// другие данные; кол-во строк в a != b</span><br />
<span style="color: #666666; font-style: italic;">// функция, куда я хочу передать указатель</span><br />
<span style="color: #993333;">void</span> init <span style="color: #009900;">&#40;</span>uint8_t <span style="color: #339933;">**</span>ptr<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; global_ptr <span style="color: #339933;">=</span> ptr<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
...<br />
<span style="color: #993333;">int</span> main <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; init<span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// что-то поделали с данными из массива a</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; init<span style="color: #009900;">&#40;</span>b<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// теперь с b</span><br />
<span style="color: #009900;">&#125;</span><br />
&nbsp;</code></fieldset></p><p>В конце концов, такой пример с ** работает же:</p><p><fieldset><legend>c</legend><code><br />
<span style="color: #339933;">#include </span><br />
<span style="color: #993333;">char</span> <span style="color: #339933;">**</span>ptr<span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #666666; font-style: italic;">// тот самый указатель на указатель</span><br />
<span style="color: #993333;">int</span> main <span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">**</span>argv<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ptr <span style="color: #339933;">=</span> argv<span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #666666; font-style: italic;">// и даже присвоение работает</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>argc <span style="color: #339933;">&gt;</span> 1<span style="color: #009900;">&#41;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span style="color: #000066;">printf</span></a><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%s<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>ptr<span style="color: #009900;">&#91;</span>1<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
&nbsp;</code></fieldset></p>]]></description>
</item>
<item>
<title>Re: [C] Указатель на указатель на ...</title>
<link>https://rulinux.net/message.php?newsid=33187&amp;page=1#89642</link>
<guid>https://rulinux.net/message.php?newsid=33187&amp;page=1#89642</guid>
<pubDate>Tue, 19 Apr 2011 18:04:43 +0400</pubDate>
<description><![CDATA[<p>А, ну и вообще не делай так. Объявляй str как *str[] = {...</p>]]></description>
</item>
<item>
<title>Re: [C] Указатель на указатель на ...</title>
<link>https://rulinux.net/message.php?newsid=33187&amp;page=1#89641</link>
<guid>https://rulinux.net/message.php?newsid=33187&amp;page=1#89641</guid>
<pubDate>Tue, 19 Apr 2011 18:01:54 +0400</pubDate>
<description><![CDATA[<p><i>>void output (char **msg)</i><br> void output(char msg[][8]);</p><p><i>>for(n = 0; n < 1; n++)</i><br> for(n = 0; n < 2; n++)</p><p>P.S. у тебя однобайтная кодировка чтоли?</p>]]></description>
</item>
<item>
<title>Re: [C] Указатель на указатель на ...</title>
<link>https://rulinux.net/message.php?newsid=33187&amp;page=1#89640</link>
<guid>https://rulinux.net/message.php?newsid=33187&amp;page=1#89640</guid>
<pubDate>Tue, 19 Apr 2011 17:39:58 +0400</pubDate>
<description><![CDATA[<p>Тот же стандартный приём входных параметров для main выглядит также:</p><p>int main (int argc, char **argv)</p>]]></description>
</item>
<item>
<title>Re: [C] Указатель на указатель на ...</title>
<link>https://rulinux.net/message.php?newsid=33187&amp;page=1#89639</link>
<guid>https://rulinux.net/message.php?newsid=33187&amp;page=1#89639</guid>
<pubDate>Tue, 19 Apr 2011 17:34:10 +0400</pubDate>
<description><![CDATA[<p>Заменил все ** на * и получил те же ошибки:</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1"><li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;>gcc test-2d-2.c <li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;test-2d-2.c: В функции 'main'<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;test-2d-2.c:15: предупреждение: assignment from incompatible pointer type<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;test-2d-2.c:16: предупреждение: passing argument 1 of 'output' from incompatible pointer type</ol></fieldset></p>]]></description>
</item>
<item>
<title>Re: [C] Указатель на указатель на ...</title>
<link>https://rulinux.net/message.php?newsid=33187&amp;page=1#89638</link>
<guid>https://rulinux.net/message.php?newsid=33187&amp;page=1#89638</guid>
<pubDate>Tue, 19 Apr 2011 17:31:48 +0400</pubDate>
<description><![CDATA[<p><i>> Попробуй заменить "**" на "*" во втором примере</i><br> Так это будет указатель на одномерный массив. Или я чего-то не понимаю? Как мне потом добратся до второй размерности?</p>]]></description>
</item>
<item>
<title>Re: [C] Указатель на указатель на ...</title>
<link>https://rulinux.net/message.php?newsid=33187&amp;page=1#89637</link>
<guid>https://rulinux.net/message.php?newsid=33187&amp;page=1#89637</guid>
<pubDate>Tue, 19 Apr 2011 17:10:01 +0400</pubDate>
<description><![CDATA[<p>Попробуй заменить "**" на "*" во втором примере</p>]]></description>
</item>
<item>
<title>[C] Указатель на указатель на ...</title>
<link>https://rulinux.net/message.php?newsid=33187&amp;page=1#89636</link>
<guid>https://rulinux.net/message.php?newsid=33187&amp;page=1#89636</guid>
<pubDate>Tue, 19 Apr 2011 17:02:00 +0400</pubDate>
<description><![CDATA[<p>Что-то я запутался. С одномерными массивами всё понятно: имя массива есть указатель на его первый элемент. Работа со строками вполне себе понятна. Пример:</p><p><fieldset><legend>c</legend><code><br />
<span style="color: #339933;">#include </span><br />
<br />
<span style="color: #993333;">char</span> str<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;Привет, лорэнг!&quot;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #993333;">void</span> output <span style="color: #009900;">&#40;</span><span style="color: #993333;">char</span> <span style="color: #339933;">*</span>msg<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span style="color: #000066;">printf</span></a><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%s<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>msg<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #993333;">int</span> main <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>tmp<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; tmp <span style="color: #339933;">=</span> str<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; output<span style="color: #009900;">&#40;</span>tmp<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
&nbsp;</code></fieldset></p><p>Компилируется без ошибок и предупреждений. И даже работает, как ожидалось. Присвоение (tmp = str) работает. Но стоит перейти к двумерным массивам, как получается уже что-то непонятное. Пример:</p><p><fieldset><legend>c</legend><code><br />
<span style="color: #339933;">#include </span><br />
<br />
<span style="color: #993333;">char</span> str<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">8</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span><span style="color: #ff0000;">&quot;Привет,&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span><span style="color: #ff0000;">&quot;лорэнг!&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #993333;">void</span> output <span style="color: #009900;">&#40;</span><span style="color: #993333;">char</span> <span style="color: #339933;">**</span>msg<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333;">int</span> n<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span>n <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> n <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> n<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span style="color: #000066;">printf</span></a><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%s<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>msg<span style="color: #009900;">&#91;</span>n<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #993333;">int</span> main <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333;">char</span> <span style="color: #339933;">**</span>tmp<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; tmp <span style="color: #339933;">=</span> str<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; output<span style="color: #009900;">&#40;</span>str<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
&nbsp;</code></fieldset></p><p>Сразу же при компиляции выскакивает предупреждение:</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1"><li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;>gcc test-2d.c -o test-2d<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;test-2d.c: В функции 'main'<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;test-2d.c:15: предупреждение: assignment from incompatible pointer type<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;test-2d.c:16: предупреждение: passing argument 1 of 'output' from incompatible</ol></fieldset></p><p>Сразу же ругается на присвоение (tmp = str, строка 15) и на передачу в функцию (строка 16), а при запуске программы получаю:</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1"><li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;>./test-2d<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;Ошибка сегментирования</ol></fieldset></p><p>А вопрос мой, собственно, и состоит в том, как работать с двумерными массивами через указатели. У меня есть два двумерных массива и я хочу передавать в функцию указатель на один их них.</p>]]></description>
</item>
</channel>
</rss>