runtime error从何而来
查看原帖
runtime error从何而来
1450848
myxRUC楼主2025/1/22 15:32

码风一般,已经尽量写了注释,希望大家尽量帮我看一下

#include<stdio.h>
#include<queue>
#include<stack>
using namespace std;
stack< int > enter;//入栈序列
queue< int > left;//出栈序列
int main(void) {
	int n = 0;
	int a[100005] = {}, b[100005] = {};
	scanf("%d", &n);//读入询问次数
	for (int i = 1; i <= n; i++) {
		int len = 0;
		scanf("%d", &len);//读入长度
		for (int j = 1; j <= len; j++) {
			scanf("%d", &a[j]);//读入每个入栈元素
		}
		for (int j = 1; j <= len; j++) {
			scanf("%d", &b[j]);//读入出栈元素
			left.push(b[j]);//加入队列
		}
		for (int j = 1; j <= len; j++) {
			enter.push(a[j]);//按照入栈顺序加入
			while (enter.top() == left.front()) {//一旦和出栈序列首元素相同,就马上出栈,并且检查之前的元素
				enter.pop();//出栈
				left.pop();//更新出栈顺序
				if ((!left.empty()) && (!enter.empty()) == 0) {
					break;//空了就跳出循环
				}
			}
		}
		if (!enter.empty()) {
			printf("No\n");//如果不能是空栈,就是No
		}
		else {
			printf("Yes\n");//是空栈即为Yes
		}
		while (!enter.empty()) {
			enter.pop();//清空,为下一次做准备
		}
		while (!left.empty()) {
			left.pop();//清空,为下一次做准备
		}
	}
	return 0;
}

请问为什么这段代码提交后会出现“Segmentation fault with invalid memory reference.”的runtime error报错(多次遇到这个问题,求教大家,谢谢

2025/1/22 15:32
加载中...