c ++数组输出具有垃圾记忆值

时间:2016-10-14 05:47:14

标签: c++ arrays

我正在使用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  

2 个答案:

答案 0 :(得分:1)

您的变量一,二,三,四的范围从1到10。 你的数组只有4个字符。您正在访问“数组越界”

答案 1 :(得分:0)

看起来你永远不会将你的四分值设置为等于任何东西。每次你调用四个++时它会抓取一个随机值。

另外,我不确定你是如何编译它的,因为没有变量5并且你正在递增它。