<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: 正式开始上班了~</title>
	<atom:link href="http://www.yinux.com/2006/07/the_official_start_of_the_work_to/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yinux.com/2006/07/the_official_start_of_the_work_to/</link>
	<description>局部地方</description>
	<lastBuildDate>Mon, 18 Apr 2011 03:50:18 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
	<item>
		<title>By: goodbee</title>
		<link>http://www.yinux.com/2006/07/the_official_start_of_the_work_to/#comment-28</link>
		<dc:creator>goodbee</dc:creator>
		<pubDate>Wed, 11 Oct 2006 16:31:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.cpp98.com/?p=64#comment-28</guid>
		<description>呵呵，依赖于操作顺序的东西，其结果太不好把握了。“输出函数又不是个随机数生成器，覆盖的值当然会有规律”你说得太大了，我只说printf，如果用流输出所覆盖的值就是随机的。而对随机值，往往容易注意得到。而printf的-1，很容易迷惑人。如果恰好覆盖之前值就是-1，那么很容易让这个bug生存下去</description>
		<content:encoded><![CDATA[<p>呵呵，依赖于操作顺序的东西，其结果太不好把握了。“输出函数又不是个随机数生成器，覆盖的值当然会有规律”你说得太大了，我只说printf，如果用流输出所覆盖的值就是随机的。而对随机值，往往容易注意得到。而printf的-1，很容易迷惑人。如果恰好覆盖之前值就是-1，那么很容易让这个bug生存下去</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 北宫赫</title>
		<link>http://www.yinux.com/2006/07/the_official_start_of_the_work_to/#comment-27</link>
		<dc:creator>北宫赫</dc:creator>
		<pubDate>Wed, 11 Oct 2006 01:17:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.cpp98.com/?p=64#comment-27</guid>
		<description>输出函数在栈上分配空间时会覆盖它的值，但输出函数又不是个随机数生成器，覆盖的值当然会有规律，真想弄清楚的话看看汇编代码就知道了。&lt;br/&gt;&lt;br/&gt;程序执行之前，操作系统会给程序分配一个栈空间，这个栈空间程序可以随便使用，管它指针指向什么位置都能读。所以在运行时，程序并没有“回收”什么空间，只不过编译器生成的代码认为某个字节是可以使用的，会覆盖它而已。&lt;br/&gt;&lt;br/&gt;即使程序去访问不属于自己的空间，操作系统也未必会阻止它。不然哪来那么多缓冲区溢出……</description>
		<content:encoded><![CDATA[<p>输出函数在栈上分配空间时会覆盖它的值，但输出函数又不是个随机数生成器，覆盖的值当然会有规律，真想弄清楚的话看看汇编代码就知道了。</p>
<p>程序执行之前，操作系统会给程序分配一个栈空间，这个栈空间程序可以随便使用，管它指针指向什么位置都能读。所以在运行时，程序并没有“回收”什么空间，只不过编译器生成的代码认为某个字节是可以使用的，会覆盖它而已。</p>
<p>即使程序去访问不属于自己的空间，操作系统也未必会阻止它。不然哪来那么多缓冲区溢出……</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: goodbee</title>
		<link>http://www.yinux.com/2006/07/the_official_start_of_the_work_to/#comment-26</link>
		<dc:creator>goodbee</dc:creator>
		<pubDate>Sun, 08 Oct 2006 15:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.cpp98.com/?p=64#comment-26</guid>
		<description>关键是输出函数覆盖的值是有规律的，这一点非常奇怪。而且printf输出之后，该值恒为-1。这个指针不能算越界吧~~，已回收的空间的访问~</description>
		<content:encoded><![CDATA[<p>关键是输出函数覆盖的值是有规律的，这一点非常奇怪。而且printf输出之后，该值恒为-1。这个指针不能算越界吧~~，已回收的空间的访问~</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 北宫赫</title>
		<link>http://www.yinux.com/2006/07/the_official_start_of_the_work_to/#comment-25</link>
		<dc:creator>北宫赫</dc:creator>
		<pubDate>Wed, 04 Oct 2006 05:00:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.cpp98.com/?p=64#comment-25</guid>
		<description>显然的事情，以前学C语言也做过这种实验，当时并不知道栈分配与堆分配的区别，对于时对时错的运行结果莫名其妙。&lt;br/&gt;内存和硬盘一样，都是已收回的空间在覆盖前不会改变值。而且C++对越界访问的指针也不会进行有效性检查，因此可能出现令人头疼的程序错误但运行正确的怪事……</description>
		<content:encoded><![CDATA[<p>显然的事情，以前学C语言也做过这种实验，当时并不知道栈分配与堆分配的区别，对于时对时错的运行结果莫名其妙。<br />内存和硬盘一样，都是已收回的空间在覆盖前不会改变值。而且C++对越界访问的指针也不会进行有效性检查，因此可能出现令人头疼的程序错误但运行正确的怪事……</p>
]]></content:encoded>
	</item>
</channel>
</rss>

