0

嗨,我有这本书,里面有一个我无法回答的练习题。不......这不是一个家庭作业问题。这是我从推荐给我的一本书中的自学:《计算机系统,程序员的视角》

这是问题: 在此处输入图像描述

任何帮助表示赞赏!

4

2 回答 2

11

length是无符号的,所以如果你传递0那个参数,length - 1will be UINT_MAX,而不是-1你想要的;因此循环将运行,您将在a.

于 2013-10-01T03:52:22.663 回答
1

改变这个unsigned length to int length 你的代码将完美运行

而为什么上面的代码不起作用是

当您使用无符号长度时,如果您将 0 传递给长度,因此在循环中,您拥有(length - 1)的是在范围内循环并且它取最大值,因此循环出现分段错误

于 2013-10-01T04:12:48.370 回答