调试器向指针显示错误的值
我有以下代码:
#include #include #include #include #include #include #include
问题是当我调试代码时,特别是那行t.strings[j] = &String[i + 1];
在this.is.a.test的测试用例中
在第一个发现点。 ,它应指向此,但在调试器中它显示以下图片。 在此处输入代码
调试器显示的内容在第55行是正确的。已经进行了赋值,因此t.strings[j]
指向点后面。
请注意,在Tokenize
您分配了Tokens t;
在堆栈上,然后返回此t
。 那很糟糕(非常糟糕!)。 因为t
在堆栈上,所以它将被printf
调用覆盖。
(虽然大多数是C,但正式它是C ++,因为在C中你不能在for
初始化中声明一个变量,如for (size_t i = 0;
)