如何在不在堆栈上创建任何内容的情况下打印数组的内容?

时间:2016-01-10 05:19:33

标签: c++ c programming-languages

我在接受采访时被问到这个问题。我不知道该告诉他什么。我问他解决方案是什么,但他拒绝回答。我在谷歌搜索它,我找不到它。感谢帮助。

2 个答案:

答案 0 :(得分:1)

我相信,这个问题更多的是检查你对内部程序工作的理解(堆栈使用,分配/释放等)。让我们考虑一下你的问题:

  

如何在不创建任何内容的情况下打印数组的内容   堆栈?

究竟是什么意思?打印后程序堆栈是否应处于相同状态?在这种情况下,只需使用一个函数来打印堆栈内容,它就会将堆栈返回到相同的状态。如果你的面试官意味着,堆栈上应该没有任何变化,这很困难,也许在许多平台上都不可能。此要求意味着您无法使用标准C / C ++库中的任何打印功能,因为任何调用都将改变堆栈。您可以通过直接写入视频缓冲区,仅使用处理器寄存器来创建工作代码,这不会影响某些旧操作系统(例如MS DOS)中的堆栈内存。任何现代操作系统都会阻止这种情况,并且需要一些API调用,这将使初始要求变得非常不可能。

答案 1 :(得分:1)

选项1:面试官是个白痴

选项2:问题是对性格的考验。

我总是想问一个“不可能”的问题,看看受访者是否会尝试B.S.我或者如果他们承认他们不知道,并且他们会尝试找到答案并在需要时寻求帮助