为什么这会引发断点?

时间:2017-03-08 22:29:21

标签: visual-c++ triggers breakpoints

我已经广泛查看了此代码中的问题,但我似乎无法弄清楚我犯了什么悲剧错误以及它为什么会触发断点。 (经过3或4次输入后,它会触发,我不知道为什么它在开始时没有触发或导致它的原因)

#include <conio.h> // For function getch()
#include <cstdlib>  // For several general-purpose functions
#include <fstream>  // For file handling
#include <iomanip>  // For formatted output
#include <iostream>  // For cin, cout, and system
#include <string>  // For string data type
using namespace std;  // So "std::cout" may be abbreviated to "cout", for   example.

string convertDecToBin(int dec)
{
    int *arrayHex, arraySize = 0;
    arrayHex = new int[];
    string s = " ";
    int r = dec;
    for (int i = 0; r != 0; i++)
    {
        arrayHex[i] = r % 2;
        r = r / 2;
        arraySize++;
    }

    for (int j = 0; j < arraySize; j++)
    {
        s = s + to_string(arrayHex[arraySize - 1 - j]);
    }
    delete[] arrayHex;
    return s;
}


string convertDecToOct(int dec)
{
    int *arrayHex, arraySize = 0;
    arrayHex = new int[];
    string s = " ";
    int r = dec;
    for (int i = 0; r != 0; i++)
    {
        arrayHex[i] = r % 8;
        r = r / 8;
        arraySize++;
    }

    for (int j = 0; j < arraySize; j++)
    {
        s = s + to_string(arrayHex[arraySize - 1 - j]);
    }
    delete[] arrayHex;
    return s;
}


int main()
{
    int input = 0;
    while (input != -1)
    {
        cout << "\nEnter a decimal number (-1 to exit loop): ";
        cin >> input;
        if (input != -1)
        {
            cout << "Your decimal number in binary expansion: " << convertDecToBin(input);
            cout << "\nYour decimal number in octal ecpression: " << convertDecToOct(input);
        }

    }
    cout << "\n\nPress any key to exit. . .";
    _getch();
    return 0;
}

1 个答案:

答案 0 :(得分:0)

arrayHex = new int[]是您的问题 - C \ C ++不支持动态大小调整数组。您需要为要分配的数组指定大小,否则会导致内存块溢出。