<?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:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SABOTAGE !</title>
	<atom:link href="http://nlc.pinguinux.cl/feed/" rel="self" type="application/rss+xml" />
	<link>http://nlc.pinguinux.cl</link>
	<description></description>
	<lastBuildDate>Fri, 09 Apr 2010 18:10:04 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Charla &#8220;Un laboratorio bajo Lupa&#8221; en Labcomp Workshop</title>
		<link>http://nlc.pinguinux.cl/2010/04/09/charla-un-laboratorio-bajo-lupa-en-labcomp-workshop/</link>
		<comments>http://nlc.pinguinux.cl/2010/04/09/charla-un-laboratorio-bajo-lupa-en-labcomp-workshop/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 18:10:04 +0000</pubDate>
		<dc:creator>nlc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nlc.pinguinux.cl/?p=404</guid>
		<description><![CDATA[Hola, hoy he dado la charla &#8220;Un laboratorio bajo lupa&#8221; en el Workshop del Labcomp, destinado a introducir a los ayudantes en las amenazas y preocupaciones a la hora de llevar adelante un lab. La hice lo más generica posible &#8230; <a href="http://nlc.pinguinux.cl/2010/04/09/charla-un-laboratorio-bajo-lupa-en-labcomp-workshop/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hola, hoy he dado la charla &#8220;Un laboratorio bajo lupa&#8221; en el Workshop del Labcomp, destinado a introducir a los ayudantes en las amenazas y preocupaciones a la hora de llevar adelante un lab.<br />
La hice lo más generica posible para que pueda ser aplicada a otros contextos, de lab siempre <img src='http://nlc.pinguinux.cl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
El pdf <a href="http://nlc.pinguinux.cl/docs/mytalks/un_lab_bajo_lupa_09042009.pdf">aquí</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nlc.pinguinux.cl/2010/04/09/charla-un-laboratorio-bajo-lupa-en-labcomp-workshop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Charla sobre QA</title>
		<link>http://nlc.pinguinux.cl/2010/04/06/charla-sobre-qa/</link>
		<comments>http://nlc.pinguinux.cl/2010/04/06/charla-sobre-qa/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 02:46:55 +0000</pubDate>
		<dc:creator>nlc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nlc.pinguinux.cl/?p=402</guid>
		<description><![CDATA[Hoy dí una breve charla sobre QA, tocando los temas de revisión de código y testing, usando el fuzzing como mecanismo y que será el enfoque durante el primer proyecto del SRT-UTFSM (Security Research Team). Las slides aqui.]]></description>
			<content:encoded><![CDATA[<p>Hoy dí una breve charla sobre QA, tocando los temas de revisión de código y testing, usando el fuzzing como mecanismo y que será el enfoque durante el primer proyecto del SRT-UTFSM (Security Research Team).<br />
Las slides <a href="http://nlc.pinguinux.cl/docs/mytalks/qa_06042010.pdf">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nlc.pinguinux.cl/2010/04/06/charla-sobre-qa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PDF de la charla</title>
		<link>http://nlc.pinguinux.cl/2009/11/12/pdf-de-la-charla/</link>
		<comments>http://nlc.pinguinux.cl/2009/11/12/pdf-de-la-charla/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 23:20:22 +0000</pubDate>
		<dc:creator>nlc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Charlas]]></category>
		<category><![CDATA[Seguridad]]></category>

		<guid isPermaLink="false">http://nlc.pinguinux.cl/?p=353</guid>
		<description><![CDATA[He subido al blog la charla que dí hoy en el Ciclo de Charlas Técnicas en mi Universidad. Aquí está el enlace a la presentación.]]></description>
			<content:encoded><![CDATA[<p>He subido al blog la charla que dí hoy en el Ciclo de Charlas Técnicas en mi Universidad. Aquí está el enlace a la <a href=" http://nlc.pinguinux.cl/docs/mytalks/seguridad_hoy_en_dia_12112009.pdf">presentación</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nlc.pinguinux.cl/2009/11/12/pdf-de-la-charla/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Charla Seguridad</title>
		<link>http://nlc.pinguinux.cl/2009/11/09/charla-seguridad/</link>
		<comments>http://nlc.pinguinux.cl/2009/11/09/charla-seguridad/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 21:01:31 +0000</pubDate>
		<dc:creator>nlc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Charlas]]></category>
		<category><![CDATA[Seguridad]]></category>

		<guid isPermaLink="false">http://nlc.pinguinux.cl/2009/11/09/charla-seguridad/</guid>
		<description><![CDATA[El dia Jueves 12 de noviembre, a las 12:00 hrs, en el auditorio F-106, dare la charla &#8220;Seguridad hoy en dia&#8221;, donde hablare de temas como seguridad en sistemas operativos, los ultimos incidentes en el kernel de Linux, tecnicas de &#8230; <a href="http://nlc.pinguinux.cl/2009/11/09/charla-seguridad/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>El dia Jueves 12 de noviembre, a las 12:00 hrs, en el auditorio F-106, dare la charla &#8220;Seguridad hoy en dia&#8221;, donde hablare de temas como seguridad en sistemas operativos, los ultimos incidentes en el kernel de Linux, tecnicas de explotacion, mecanismos de proteccion, botnets, web-apps, etc.<br />
Quedan todos invitados.<br />
Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://nlc.pinguinux.cl/2009/11/09/charla-seguridad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Overloaded Operators &#8211; ACM-ICPC Chile</title>
		<link>http://nlc.pinguinux.cl/2009/10/27/the-overloaded-operators/</link>
		<comments>http://nlc.pinguinux.cl/2009/10/27/the-overloaded-operators/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 04:39:31 +0000</pubDate>
		<dc:creator>nlc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ACM-ICPC]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://nlc.pinguinux.cl/?p=347</guid>
		<description><![CDATA[Hola, ha pasado bastante tiempo desde que no blogueaba. Les cuento. El fin de semana con Alexander y Manzillo participamos en la ACM-ICPC Chile representando a la UTFSM con el nombre de &#8220;The Overloaded Operators&#8221;, un alias gracias a nuestro &#8230; <a href="http://nlc.pinguinux.cl/2009/10/27/the-overloaded-operators/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hola, ha pasado bastante tiempo desde que no blogueaba. Les cuento.</p>
<p>El fin de semana con Alexander y Manzillo participamos en la ACM-ICPC Chile representando a la <a href="http://www.usm.cl">UTFSM</a> con el nombre de &#8220;The Overloaded Operators&#8221;, un alias gracias a nuestro coach Bonva, y nos fue bien. Sacamos 3º lugar nacional, lo cual no es malo si solo tuvimos tres entrenamientos (resolvimos tres problemas) antes de la competencia, esto porque recién a finales de Septiembre decidimos participar y nos contactamos con Bonva, quién finalmente terminó siendo nuestro coach.</p>
<p>El <a href="http://www.acm-icpc.cl/scoreboard.html">scoreboard final</a> muestra que la cosa estuvo bien peleada, aunque lo cierto es que al primer lugar ya no lo alcanzabamos y el segundo lugar tenía ya el globo del segundo problema cuando nosotros decidimos hacerlo, y afortunadamente fuimos los más rápidos y nos quedamos con el tercer lugar.</p>
<p>Los problemas eran dificiles y ahí se noto nuestra falta de preparación, ya que nos habíamos especializado en programación dinámica, teoría de grafos y backtracking, dejando gran cantidad de temas sin tocar. Igual el input de prueba de los problemas era muy básico y el juez retornaba respuestas malas con lo cual estuvimos un poco perdidos en un tercer problema que funcionaba pero el juez lo declaraba malo, y otro problema que funcionaba con el input, pero después al llegar a la casa de un amigo me puso un caso y he ahí el error.</p>
<p>Sin duda fue una buena experiencia, sacamos buenos frutos de una casi nula preparación y nos la craneamos harto. El próximo año ya no podré concursar por el tema de los años límite, pero Manzillo y Ale quedaron con sed de gloria y andan en busca del tercer integrante, que de preferencia sea una biblia de programación + mente brillante.</p>
<p>Pronto terminaré con Behemoth y algunas otras cosas.</p>
<p>Saludos y gracias a todos por el apoyo <img src='http://nlc.pinguinux.cl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://nlc.pinguinux.cl/2009/10/27/the-overloaded-operators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>El uso de VARCHAR(n)</title>
		<link>http://nlc.pinguinux.cl/2009/08/17/el-uso-de-varcharn/</link>
		<comments>http://nlc.pinguinux.cl/2009/08/17/el-uso-de-varcharn/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 07:25:32 +0000</pubDate>
		<dc:creator>nlc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nlc.pinguinux.cl/?p=336</guid>
		<description><![CDATA[Volviendo a escribir, les dejó el enlace a un post interesante sobre el uso de VARCHAR(n) en Postgresql. El artículo explica muy bien que especificar un largo fijo a un campo VARCHAR no es precisamente una optimización en nuestra base &#8230; <a href="http://nlc.pinguinux.cl/2009/08/17/el-uso-de-varcharn/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Volviendo a escribir, les dejó el enlace a un post interesante sobre el uso de VARCHAR(n) en Postgresql. El artículo explica muy bien que especificar un largo fijo a un campo VARCHAR no es precisamente una optimización en nuestra base de datos, que yo creo era lo que la mayoría pensabamos.</p>
<p>El enlace <a href="http://people.planetpostgresql.org/dfetter/index.php?/archives/24-VARCHARn-Considered-Harmful.html">aquí</a>.</p>
<p>Pronto estaré escribiendo más, terminar con Behemoth y tratar sobre otras cosas.</p>
<p>Saludos!</p>
]]></content:encoded>
			<wfw:commentRss>http://nlc.pinguinux.cl/2009/08/17/el-uso-de-varcharn/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nuevo número de The Bug! Magazine</title>
		<link>http://nlc.pinguinux.cl/2009/06/26/nuevo-numero-de-the-bug-magazine/</link>
		<comments>http://nlc.pinguinux.cl/2009/06/26/nuevo-numero-de-the-bug-magazine/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 08:55:58 +0000</pubDate>
		<dc:creator>nlc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Comunidad]]></category>
		<category><![CDATA[Ezine]]></category>
		<category><![CDATA[The Bug! Magazine]]></category>

		<guid isPermaLink="false">http://nlc.pinguinux.cl/?p=309</guid>
		<description><![CDATA[Bastante sorpresa me causó el anuncio de un nuevo número de &#8220;The Bug! Magazine&#8220;, ya que tiempo atrás habían decidido no seguir publicando más números por la falta de aportes (algo similar paso con NetSearch). Al parecer renovaron el staff &#8230; <a href="http://nlc.pinguinux.cl/2009/06/26/nuevo-numero-de-the-bug-magazine/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Bastante sorpresa me causó el anuncio de un  nuevo número de &#8220;<a href="http://www.thebugmagazine.org/">The Bug! Magazine</a>&#8220;, ya que tiempo atrás habían decidido no seguir publicando más números por la falta de aportes (algo similar paso con NetSearch).</p>
<p>Al parecer renovaron el staff y han sacado el cuarto número, como siempre en portugués. Portuguesinho se parece harto al español así que no encuentro problemas para entender los artículos, espero ustedes tampoco. Se ve interesante el de los telefónos públicos y la ingeniería inversa en aplicaciones Java. Solo espero que este semestre terminé luego para tener algo de tiempo libre y poder leer y escribir más a menudo.</p>
<p>El enlace <a href="http://www.thebugmagazine.org/magazine/bug04/index.html">aquí</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nlc.pinguinux.cl/2009/06/26/nuevo-numero-de-the-bug-magazine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Tips por Google</title>
		<link>http://nlc.pinguinux.cl/2009/06/25/php-tips-por-google/</link>
		<comments>http://nlc.pinguinux.cl/2009/06/25/php-tips-por-google/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 19:55:17 +0000</pubDate>
		<dc:creator>nlc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Optimización]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://nlc.pinguinux.cl/?p=305</guid>
		<description><![CDATA[No recuerdo donde lo leí, al parecer en mis feeds, pero Google publicó un artículo con tips para mejorar la performance de nuestro código PHP. Describen hartas cosas interesantes como el buen uso de los echo&#8217;s y apostrofes. Esto parece &#8230; <a href="http://nlc.pinguinux.cl/2009/06/25/php-tips-por-google/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>No recuerdo donde lo leí, al parecer en mis feeds, pero Google publicó un artículo con tips para mejorar la performance de nuestro código PHP. Describen hartas cosas interesantes como el buen uso de los echo&#8217;s y apostrofes.</p>
<p>Esto parece ser parte de una sección en Google Code llamada &#8220;<a href="http://code.google.com/speed/index.html">Let&#8217;s make the web faster</a>&#8220;, que tiene otros artículos sobre optimización de código web.</p>
<p>El artículo sobre PHP <a href="http://code.google.com/speed/articles/optimizing-php.html">aquí</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nlc.pinguinux.cl/2009/06/25/php-tips-por-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nuevo numero de Phrack</title>
		<link>http://nlc.pinguinux.cl/2009/06/11/nuevo-numero-de-phrack/</link>
		<comments>http://nlc.pinguinux.cl/2009/06/11/nuevo-numero-de-phrack/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 20:05:23 +0000</pubDate>
		<dc:creator>nlc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Comunidad]]></category>
		<category><![CDATA[Ezine]]></category>
		<category><![CDATA[Phrack]]></category>

		<guid isPermaLink="false">http://nlc.pinguinux.cl/?p=171</guid>
		<description><![CDATA[Después de un año y un mes de espera, ha visto la luz un nuevo número de Phrack, la ezine underground de excelencia. Una gran variedad de artículos de gran nivel a disposición de la comunidad. Solo espero tener un &#8230; <a href="http://nlc.pinguinux.cl/2009/06/11/nuevo-numero-de-phrack/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Después de un año y un mes de espera, ha visto la luz un nuevo número de Phrack, la ezine underground de excelencia. Una gran variedad de artículos de gran nivel a disposición de la comunidad. Solo espero tener un tiempecito para comenzar a leerla.</p>
<p>Desde 1985, por y para hackers. <a href="http://phrack.org/issues.html?issue=66">Phrack 66 disponible</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nlc.pinguinux.cl/2009/06/11/nuevo-numero-de-phrack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paso por referencia de un arreglo malloc-eado en otra función</title>
		<link>http://nlc.pinguinux.cl/2009/06/10/paso-por-referencia-de-un-arreglo-malloc-eado-en-otra-funcion/</link>
		<comments>http://nlc.pinguinux.cl/2009/06/10/paso-por-referencia-de-un-arreglo-malloc-eado-en-otra-funcion/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 04:43:46 +0000</pubDate>
		<dc:creator>nlc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://nlc.pinguinux.cl/?p=154</guid>
		<description><![CDATA[Si, el título es bastante raro y no quisé explayarme más. El otro día un amigo me presento este problema : &#8220;Si tengo un puntero int en una función, como puedo hacer para que en otra función se le asigne &#8230; <a href="http://nlc.pinguinux.cl/2009/06/10/paso-por-referencia-de-un-arreglo-malloc-eado-en-otra-funcion/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Si, el título es bastante raro y no quisé explayarme más. El otro día un amigo me presento este problema : &#8220;Si tengo un puntero <strong>int</strong> en una función, como puedo hacer para que en otra función se le asigne un espacio con <strong>malloc()</strong>, asignarle valores a ese espacio malloc-eado, y de retorno en la función inicial, poder imprimir estos datos ?&#8221; Un poco de pseudocódigo para que entiendan mejor :</p>
<p><span id="more-154"></span></p>
<p>[c]<br />
funcion(puntero)<br />
{<br />
puntero = malloc(&#8230;)<br />
for(&#8230;)<br />
puntero[i] = i;<br />
}</p>
<p>inicio()<br />
{<br />
int *ptr;<br />
funcion(ptr);<br />
printf(ptr[i]);<br />
}<br />
[/c]</p>
<p>Le sugerí que pasará el puntero por referencia (<strong>&amp;ptr</strong>), probé el código para el primer elemento del nuevo arreglo y funcionó. Después me dijo que no funcionaba para el segundo elemento y todos los demás. Y ahí se cayó el mundo. El código era el siguiente :</p>
<p>[c]<br />
#include<br />
#include</p>
<p>void modify(int **temp)<br />
{<br />
int i;<br />
*temp = malloc(4*3);<br />
for(i = 0; i &lt; 3; i++)<br />
*temp[i] = i;<br />
}<br />
int main()<br />
{<br />
int *arreglo;<br />
modify(&amp;arreglo);<br />
printf(&#8220;%d %d %d\n&#8221;, arreglo[0] ,arreglo[1], arreglo[2]);<br />
}<br />
[/c]</p>
<p>Este código, yo creía que perfecto, lanzaba este output.</p>
<pre>$ ./malloc
0 0 0</pre>
<p>Ante la duda, consulte en uno de los canales de IRC que frecuento, y les presente el problema y en un minuto me dijeron la solución : &#8221; en vez de <strong>*temp[i] = i</strong>, usa <strong><span style="color: #ff6600;">(*temp)[i] = i</span></strong> . El operador ( ) tiene mayor precedencia que []&#8220;. Cambie esa línea y funcionó altiro, pero me costo entender un poco la solución.</p>
<h2><span style="color: #003366;">Explicación</span></h2>
<p>Todo se trata de la precedencia de operadores en C. Revisando cualquier tabla, tal como en esta <a href="http://laurel.datsi.fi.upm.es/~rpons/personal/trabajos/curso_c/node62.html">página</a>, vemos que () tiene mayor precedencia que [], y más abajo sale *. En resumen, <strong>() &gt; [] &gt; *</strong>. Ahora vamos a entender un poco de lo teórico y terminamos con lo práctico.</p>
<p>Al inicio, con<strong> *temp[i]</strong>, lo que se produce es lo siguiente. Con <strong>i=0</strong>, <span style="color: #003366;"><strong>*temp[0] = *(*temp</strong></span><strong><span style="color: #003366;">)</span></strong>, con lo cual se evalua<strong> (*temp)</strong> y luego el puntero a esa evaluación se le asigna 0,  lo cual es correcto y por eso funciono cuando probé con solo un elemento. Pero después con el segundo elemento, el output tira 0 siendo que debería ser 1.</p>
<p><span style="color: #ff6600;"><strong>Por qué</strong></span>? Porque el operador [] tiene mayor precedencia que el operador de indirección *, con lo cual primero se evalua <strong>temp[i]</strong>, y luego se desreferencia, con lo cual muestra elementos cercanos a la variable <strong>temp</strong> y no a lo que apunta <strong>*temp</strong>. Si bien <strong>temp</strong> es un puntero al puntero <strong>arreglo</strong>, ésta tiene una dirección propia (<strong>&amp;temp</strong>).</p>
<p>Por el contrario, si usamos <strong>(*temp)[i]</strong>, primero se desreferencia el puntero <strong>*temp</strong>, y luego se mueve el offset <strong>i</strong> desde la direccion a la que apunta <strong>*temp</strong>.</p>
<p>Este código pretende dejar más claro el uso de los operadores en las variables:</p>
<p>[c] #include<br />
#include</p>
<p>void modify(int **temp)<br />
{<br />
int i;<br />
*temp = malloc(4*3);</p>
<p>printf(&#8220;temp @ %p\n&#8221;, &amp;temp);<br />
printf(&#8220;temp apunta a @ %p\n&#8221;, *temp);</p>
<p>printf(&#8220;\nMetodo *temp[i]:\n&#8221;);<br />
for(i = 0; i &lt; 3; i++)<br />
printf(&#8220;*temp[%d] : %p\n&#8221;, i, temp[i]);</p>
<p>printf(&#8220;\nMetodo (*temp)[i]\n&#8221;);<br />
for(i = 0; i &lt; 3; i++)<br />
{<br />
printf(&#8220;(*temp)[%d] : %p\n&#8221;, i, &amp;(*temp)[i]);<br />
(*temp)[i] = i;<br />
}<br />
}<br />
int main()<br />
{<br />
int *arreglo;<br />
modify(&amp;arreglo);<br />
printf(&#8220;\nRetornando en main()\n&#8221;);<br />
printf(&#8220;arreglo[0] @ %p = %d\n&#8221;, &amp;arreglo[0], arreglo[0]);<br />
printf(&#8220;arreglo[1] @ %p = %d\n&#8221;, &amp;arreglo[1], arreglo[1]);<br />
printf(&#8220;arreglo[2] @ %p = %d\n&#8221;, &amp;arreglo[2], arreglo[2]);<br />
}<br />
[/c]<br />
El output de este programa es :</p>
<pre>$ ./malloc-exp
temp @ 0xbfd7b870
temp apunta a @ 0x95ac008

Metodo *temp[i]:
*temp[0] : 0x95ac008
*temp[1] : 0xbfd7b8b0
*temp[2] : 0xbfd7b908

Metodo (*temp)[i]
(*temp)[0] : 0x95ac008
(*temp)[1] : 0x95ac00c
(*temp)[2] : 0x95ac010

Retornando en main()
arreglo[0] @ 0x95ac008 = 0
arreglo[1] @ 0x95ac00c = 1
arreglo[2] @ 0x95ac010 = 2</pre>
<p>Ahora espero quede más clara la cosa. Si usamos <strong>*temp[i]</strong>, para el primer elemento funciona (como lo vi antes), pero desde el segundo elemento las direcciones que toma son cercanas a la dirección de la variable <strong>temp</strong> (<strong><span style="color: #ff6600;">0xbfd7b870</span></strong>) y en offset mayores a los que supone la variable <strong>i</strong> (4 bytes). Al parecer esta tomando memoria que no está asignada. En cambio con <strong>(*temp)[i]</strong>, todas las direcciones están juntas, tal como corresponde en un arreglo, separadas por 4 bytes que corresponde al tamaño de un entero.</p>
<p>Después de vuelta en <strong>main()</strong>, vemos que el arreglo apunta a las direcciones malloc-eadas anteriormente, y podemos acceder a los valores que antes fijamos.</p>
<p>Espero que este post sea de ayuda cuando tengan un problema de este tipo, es un poco difícil de explicar en keywords, pero bueno ya está. Una buena lección sobre operadores.</p>
<p>Saludos</p>
]]></content:encoded>
			<wfw:commentRss>http://nlc.pinguinux.cl/2009/06/10/paso-por-referencia-de-un-arreglo-malloc-eado-en-otra-funcion/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
