我正在使用c ++在数组上练习我有垃圾内存值,我该如何修复它,谢谢
#include<cstdlib>
#include<fsream>
#include<iostream>
#include<locale.h>
#include<string.h>
using namespace std;
string sone;
string stwo;
string sthree;
string sfour;
int one;
int two;
int three;
int four;
int main(int org, char** argv)
{
char array = { 'a', 'b', 'c', 'd' };
while (four <= 10)
{
three = 0
while (three <= 10)
{
two = 0
while (two <= 10)
{
one = 0
while (one <= 10)
{
setlocale(LC_CTYPE, "Local");
ofstream out("file.txt", ios::app);
sone = array[one];
stwo = array[two];
sthree = array[three];
sfour = array[four];
out << sfour + sthree + stwo + sone;
out << "\n";
out.close();
one++;
}
two++;
}
four++;
}
five++;
}
}
输出:
1-aaaa
2-aaab
3-aaac
4-aaad
5-aaa#
6-aaa?
7-aaa0
8-aaa#
9-aaa'
10-aaa_
11-aaa?
12-aaba
13-aabb
答案 0 :(得分:1)
您的变量一,二,三,四的范围从1到10。 你的数组只有4个字符。您正在访问“数组越界”
答案 1 :(得分:0)
看起来你永远不会将你的四分值设置为等于任何东西。每次你调用四个++时它会抓取一个随机值。
另外,我不确定你是如何编译它的,因为没有变量5并且你正在递增它。