【发布时间】:2017-05-27 14:33:54
【问题描述】:
这是 Coursera 上的测验(未评分)。问题是,以下代码可能评估为什么?正确的答案是 127 和 0(其他选项是崩溃,-1、128。为什么下面的代码可能评估为 0?我理解为什么它会评估为 127。它是否与 char 字节未初始化一样简单,因此随机的?它也可能计算为 0 到 127 之间的任何 # 吗?
int foo(void) {
char bar[128];
char *baz = &bar[0];
baz[127] = 0;
return strlen(baz);
}
【问题讨论】:
-
没有一个您列出的可能答案是正确的。
-
coursera 上有什么课程?
-
软件安全。这是一个“资格测验”,旨在衡量您是否可以完成课程。
-
扩展@tofro 的评论:您可能的结果之一是偏离了一个,但这个想法(我认为)是正确的。
标签: c arrays initialization strlen