繁体   English   中英

绘制执行代码图

Drawing a diagram of executing code

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

考虑以下代码行:

char a = 'a';
char b = 'b';
int ai[] = { 1, 2 };
int i = 0;

假设字长为32位,整数为32位,并且内存分配以与声明从地址位置68开始的相反顺序进行。

绘制一个图表,显示执行以下代码行的效果。

 for (i = 0; i < 8; i++)
 *(&a – i) = 'z';

所以我不确定在这里对我有什么期望。 我最初的猜测是它循环遍历,基本上执行a-1,a-2 ....,a-8,使每个值都等于字符Z。因此,该图实际上是8个对象,所有指向Z的对象均具有相同的值地址为Z。我不确定这是对还是错。 任何人都可以解释。 仅供参考,这是过去的考试卷,为期末考试而练习,而不是考试工作!

2 个回复

您不能保证它的工作方式,这取决于C编译器如何布置。 但是,您可以轻松地建立特定的 C编译器的工作方式。 假设使用gcc ,请使用-g编译,然后在gdb下运行该程序。 使用print来打印变量(或使用print &x来打印变量的地址),并使用x来检查内存。

该代码很奇怪,因为没有任何意义。 据我所知,这将发生:

我将位于地址68

ai将位于72和76

困难的部分是a和b。 它们只需要一个字节,但是编译器仍然可以对它们进行字对齐! 这取决于您的系统/编译器。

选项1使用单词对齐:

b将在地址80

一个将在地址84

选项2不使用单词对齐:

b将在地址80

一个将在地址81

循环将以a覆盖a开始,然后将地址减1并以z覆盖该位置

这将重复8次。

因此,对于选项1,结果将是a和b均为z,一些未使用的内存也为z。

记忆之前:

00 00 00 00

00 00 00 01

00 00 00 02

---'b'

- - - '一种'

记忆后:

00 00 00 08

00 00 00 01

00 00 00 02

'z''z''z''z'

'z''z''z''z'

对于选项2,a和b均为z,但ai也将更改。 ai [1] = int(zzzz)和ai [0] = int(zz)

记忆之前:

00 00 00 00

00 00 00 01

00 00 00 02

'b''a'

记忆后:

00 00 00 08

00 00'z''z'

'z''z''z''z'

'Z Z'

编辑:

我看到我的答案被否决了。

也许是因为我忘了说这是针对大型字节序系统的。

因此,我也在Windows机器上尝试了该程序,并得到了以下结果:

地址28fec3

地址b 28fec2

ai地址28feb8

我地址28feb4

之前

0 0 0 0(i = 0)

1 0 0 0(ai [0] = 1)

2 0 0 0(ai [1] = 2)

-43 -116 ba(未使用的未使用b ='b'a ='a')

8 0 0 0(i = 8)

1 0 0 0(ai [0] = 1)

zzzz(ai [1] = int(“ zzzz”)

zzzz(未使用的未使用的b ='z'a ='z')

由于字节序很少,因此“转身”,但要点是相同的。

感谢您的不赞成评论。

1 如何绘制此代码的类图?

我想为此代码绘制一个类图。 我正在使用Android Studio进行项目。 我已经尝试过,但是不确定是否正确执行了操作。 这是STT的Activity类代码 我挑选了不确定的部分: 这是图像类图,不确定我是否正确绘制了这三个部分 ...

2 使用代码绘制此图所示的图[重复]

这个问题已经在这里有了答案: WPF C#路径:如何从具有路径数据的字符串获取代码中的几何图形(不在XAML中) 3个答案 我想绘制Image所示的Path,它是几何路径或形状,我想使用C#代码而不是Xaml绘制路径。 我尝试制作“矩形”和“圆形”并使它们与“矩形 ...

4 如何从Java代码绘制序列图

目前,我正在从Java代码绘制序列图,我知道仍然存在几种快捷方式扩展软件,我仍然想用手绘制它并弄清楚发生了什么。 我正在使用来自Java的以下代码: 我从这段代码中得到的是这样的: 在这种情况下,我不知道如何继续绘制该图,因为我不知道如何为这段代码绘制该图: cl ...

6 如何概括以下代码以绘制计数图?

我有一个具有5个分类值的df,我正在做以下操作,计算值的数量,然后绘制它们: 在这种情况下,只有5列,因此该技术并不麻烦。 但是,如果有许多这样的功能,那么编写这样的代码将非常麻烦。 因此,我想知道如何修改上面的代码以使其更有效? ...

8 使用代码绘制控制流图

为以下代码段绘制流程控制图。 有人可以告诉我如何绘制控制流图,因为我不熟悉。 此外,如果您无法帮助,请不要回答愚蠢的答案。 这个问题与我即将参加的软件测试考试有关。 谢谢你 ...

9 如何在C代码中绘制步骤图

我想绘制一个多电平转换器的输出电压,基本上输出应该像这样 。 其中,在每个时间步长中,输出电压都会增加一个步长。 例如,当t = 0s时,v_total为零,当涉及t1时,v_total为V,当t = t2(下一时间步长)时,v_total为2V,... 3V ...等 我正在使用 ...

10 基于功能的LaTeX代码绘制功能图

我正在用LaTeX撰写论文,有一个结论: 但是我想根据不同的p和m来显示H'的数字(假设h = 4)。 我尝试在Mac OS X上使用Grapher绘制图形,但我想我不能只是将LaTeX代码复制到Grapher中。 谁能建议一个可以根据LaTeX代码绘制H形的软件? ...

2013-03-26 09:52:54 0 110   latex
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM