我试图检查字符串是否是回文,方法是将字符串添加到堆栈中,然后弹出到新堆栈中,然后在最后比较它们。但是,当弹出到新堆栈时,只有大约一半的元素实际上正在转移到新堆栈,我不知道为什么。以下是代码:
public void menu () {
opt = JOptionPane.showInputDialog("Enter a word to see if it is a Palindrome: ");
String temp = transform(opt);
Stack stack = new Stack ();
Stack stac
#include<iostream>
using namespace std;
int f()
{
static int count=0;
count++;
if (count>=5000)
return count;
return f();
}
int main ()
{
cout<<f();
return 0;
}
此函数在count的值超过4800后溢出堆栈。谁能告诉我如何解决这个问题?
我找不到这个问题的答案。推送到堆栈上的数据大小是多少?
假设您将一些数据推送到堆栈上。例如,int。则堆栈指针的值减少4个字节。
直到今天,我还认为可以推送到堆栈上的最大数据不能大于指针大小。但我做了个小实验。我用C#写了一个简单的应用:
int i = 0; //0x68 <-- address of variable
int j = 1; //0x64
ulong k = 2; //0x5C
int l = 3; //0x58
根据我的预测,ulong应该分配在堆上,因为它需要8个字节,而我在32位系统上工作(所以指针大小是4个字节)。这会很奇怪,因为这是一个简