<?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>Blog de Helton Duarte &#187; Treinamento OBI/IOI</title>
	<atom:link href="http://heltonduarte.com/category/cursos/treinamento-obiioi/feed/" rel="self" type="application/rss+xml" />
	<link>http://heltonduarte.com</link>
	<description>O seu espaço sobre programação</description>
	<lastBuildDate>Fri, 15 Jul 2011 18:38:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Segmentation Fault &#8211; a memória do PC pede ajuda!</title>
		<link>http://heltonduarte.com/2010/01/27/segmentation-fault-a-memoria-do-pc-pede-ajuda/</link>
		<comments>http://heltonduarte.com/2010/01/27/segmentation-fault-a-memoria-do-pc-pede-ajuda/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 15:26:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Treinamento OBI/IOI]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[erro]]></category>
		<category><![CDATA[segmentation fault]]></category>
		<category><![CDATA[USACO Training Program]]></category>

		<guid isPermaLink="false">http://heltonduarte.com/?p=344</guid>
		<description><![CDATA[Explicação sobre "Segmentation Fault", assim como as causas mais prováveis de gerar esse tipo de erro. Ajuda para a OBI / IOI com mais uma dica para você!]]></description>
			<content:encoded><![CDATA[<p><em>Olá pessoal,</em></p>
<p>Venho treinando nos últimos dias com o foco na <a title="OBI 2010" href="http://olimpiada.ic.unicamp.br" target="_blank">OBI 2010</a> e, quem sabe, na <a title="IOI 2010" href="http://www.ioi2010.org" target="_blank">IOI 2010</a> (se Deus quiser!), no site de treinamento da equipe dos Estados Unidos, mais conhecido como <a title="USACO Training Program" href="http://ace.delos.com/usacogate" target="_blank">USACO Training Program</a> e percebi que é uma <strong>fonte impressionante de treinamento para competições de programação</strong>, especialmente as citadas acima. Durante algumas resoluções de problemas me deparei com um erro chamado <strong>&#8220;Segmentation Fault&#8221;</strong> quando eu tentava executar o programa e resolvi pesquisar a respeito para esclarecer melhor na minha mente e poder passar a todos, já que não é um erro tão raro de ocorrer em programas.</p>
<p>Quando se tem um <strong>irmão expert em C++</strong> e amante de competições de programação assim como eu tenho, é bem mais fácil tirar as dúvidas, portanto segue a explicação (adaptada) que <strong>Herbert Duarte</strong> deu para esse problema.</p>
<p><strong>Segfault</strong>, como também é conhecido, ocorre quando um programa está tentando <strong>acessar uma área de memória protegida</strong>, ou seja, que não faz parte de seu endereçamento (espaço da memória revervado pelo Sistema Operacional para cada um dos programas que estão sendo executados), ou quando <strong>tenta acessar um local de forma inapropriada</strong>, como por exemplo, tentando escrever em um espaço que é de somente-leitura. As <strong>causas mais comuns</strong> para esse tipo de erro são as seguintes:</p>
<ul>
<li><strong>Ponteiros não inicializados ou com valores inválidos</strong>, pois quando o programa tenta acessá-lo provavelmente irá cair em algum lugar aleatório da memória que o programa não tem acesso;</li>
<li><strong>Acessar uma posição inválida de matrizes ou vetores</strong>, já que o programa irá calcular a posição como se ela existisse e provavelmente irá cair em um local sem acesso (ocorrendo frequentemente quando o programa calcula, em alguma situação, uma posição para ser acessada, porque, se houver qualquer erro nesse cálculo, a posição acessada será inválida);</li>
<li>Tentar alterar um caracter de uma string que foi inicializada como &#8220;Somente leitura&#8221;.</li>
</ul>
<p>Bem, dessa forma, espero que cuidem melhor de seus programas para não caírem nesse mesmo erro, lembrando apenas que <strong>Segmentation Fault não é um erro de compilação de código</strong>, mas um erro de execução de programa.</p>
<p><strong>Fonte para auxílio:</strong> <a title="Segmentation Fault - Wikipedia" href="http://en.wikipedia.org/wiki/Segmentation_fault" target="_blank">Segmentation Fault &#8211; Wikipedia</a></p>
<p><strong>Posts interessantes:</strong></p>
<ul>
<li><a title="Treinando para a OAH 2009" href="http://heltonduarte.com/2009/09/25/treinando-para-a-oah-2009/" target="_self">Treinando para a OAH 2009</a></li>
<li><a title="Google Code Jam 2009: uma nova oportunidade" href="http://heltonduarte.com/2009/08/17/google-code-jam-2009-uma-nova-oportunidade/" target="_self">Google Code Jam 2009: uma nova oportunidade</a></li>
<li><a title="Categoria: Programando Melhor" href="http://heltonduarte.com/category/cursos/programando-melhor/" target="_self">Categoria: Programando Melhor</a></li>
</ul>
<p><em>Mais algum erro está perturbando vocês? <strong>Comente</strong> e nos conte que procuraremos sempre ajudá-lo!</em></p>
<p><strong>Helton de Melo Duarte</strong></p>
<p><em>&#8220;Eu, porém, estou aflito e necessitado; apressa-te por mim, ó Deus; tu és o meu auxílio e o meu libertador; SENHOR, não te detenhas.&#8221;</em> <strong>Salmos 70.5</strong></p>
<p><em>&#8220;Por ti tenho sido sustentado desde o ventre; tu és aquele que me tiraste do ventre de minha mãe; o meu louvor será para ti constantemente.&#8221; </em><strong>Salmos 71.6</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://heltonduarte.com/2010/01/27/segmentation-fault-a-memoria-do-pc-pede-ajuda/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

