论这道题我遇到的不知名Bug
查看原帖
论这道题我遇到的不知名Bug
1326504
Enigma_Soul楼主2025/7/26 18:41

注: 本入不知道这是不是自己遇到的独有Bug

观察代码

#include<bits/stdc++.h>
using namespace std;

const int Mod = 1e9+7;

int main(){
	int n,w;
	cin >> n >> w;
	
	int a[n+1] = {0};
	for(int i =1;i<=n;i++) cin >> a[i];
	
	int dp[n+5][w+5];

  // 剩下代码去看Timmark的题解
	return 0;
} 

Timmark的题解 感谢Timmark大佬

然后我得到了一个极其猎奇的值

638652068-638652068

Bug测试

于是我做了一下测试

#include<bits/stdc++.h>
using namespace std;

int main(){
	int a = 1,b=5;
	int array_1[1][5] = {0};
	int array_2[a][b] = {0};
	
	cout << "Array_1 : ";
	for(int i = 0;i<5;i++){
		cout << array_1[0][i] << " ";
	}
	cout << endl;
	
	cout << "Array_2 : ";
	for(int i = 0;i<5;i++){
		cout <<array_2[0][i] << " ";
	}
	return 0;
} 

然后我得到了猎奇的结果

Array_1 : 0 0 0 0 0
Array_2 : 0 32758 771430272 32758 1304175528

??????????????????????????????????????????

于是我又做了一下测试

#include<bits/stdc++.h>
using namespace std;

#define a1 1
#define b1 5

int main(){
	const int a2 = 1,b2=5;
	int array_1[a1][b1] = {0};
	int array_2[a2][b2] = {0};
	
	cout << "Array_1 : ";
	for(int i = 0;i<5;i++){
		cout << array_1[0][i] << " ";
	}
	cout << endl;
	
	cout << "Array_2 : ";
	for(int i = 0;i<5;i++){
		cout <<array_2[0][i] << " ";
	}
	return 0;
} 

得到的结果却很正常

Array_1 : 0 0 0 0 0
Array_2 : 0 0 0 0 0

总结

"咱也不知道这是不是Bug 咱也不敢问(问不着)"

建议:

memset(array_2,0,sizeof(array_2));

求大佬帮本蒟蒻忙解答为什么

¯\_(ツ)_/¯

2025/7/26 18:41
加载中...