C++ 如何使用递归打印文本背景词? char Text::torreverse(Text t1,int t)const { 如果(t1.bufferSize==1) 返回“”; if(t==(t1.bufferSize)-1) 返回“”; cout
如果您得到“访问冲突写入位置”,它不是由该函数引起的,因为它不会写入任何内存 它没有明显的错误,但这主要是因为向后读取数组的算法变得混乱 要以反向方式递归打印字符串,首先以反向方式打印“其余”字符,然后打印“此”字符更简单。C++ 如何使用递归打印文本背景词? char Text::torreverse(Text t1,int t)const { 如果(t1.bufferSize==1) 返回“”; if(t==(t1.bufferSize)-1) 返回“”; cout,c++,class,recursion,C++,Class,Recursion,如果您得到“访问冲突写入位置”,它不是由该函数引起的,因为它不会写入任何内存 它没有明显的错误,但这主要是因为向后读取数组的算法变得混乱 要以反向方式递归打印字符串,首先以反向方式打印“其余”字符,然后打印“此”字符更简单。 当你到达绳子的末端时停止 如果函数应该打印字符串,那么它为什么会返回一个char,这一点很不清楚,因此该函数不会: char Text::toReverse(Text t1, int t) const { if (t1.bufferSize == 1)
当你到达绳子的末端时停止 如果函数应该打印字符串,那么它为什么会返回一个
char
,这一点很不清楚,因此该函数不会:
char Text::toReverse(Text t1, int t) const
{
if (t1.bufferSize == 1)
return ' ';
if (t == (t1.bufferSize) - 1)
return ' ';
cout << t1.buffer[(t1.bufferSize) - 2 - t];
return toReverse(t1, t + 1);
}
void Text::torreverse(Text t1,int t)const
{
if(t 我可以建议您为bufferSize、bufferSize-2和bufferSize-2-t添加打印语句吗?请检查这些语句是否变为负数,或者超出字符串大小。我很确定“某些错误处理问题”有你需要的所有信息。停在那里,用你选择的调试器检查堆栈。我想这可能有用@Quentin这不是堆栈,我刚才说我一直在尝试调试它,但它不让我调试;它一直给我错误。@user889742这是个好主意!我会尝试的。
void Text::toReverse(Text t1, int t) const
{
if (t < t1.bufferSize)
{
toReverse(t1, t + 1);
cout << t1.buffer[t];
}
}