我正在努力提高C++的水平(我知道一点)。我正在研究字符数组。我发现了一个练习,目标是反转字符数组(将其从整数转换后)。我收到以下错误(使用VS2005):

运行时检查失败#2-变量'revBuffer'周围的堆栈已损坏。

当我单步执行代码时,我注意到以下几点:

revBuffer = 0x0012fe40“100899ÌÌÌÌÌÌÌÌÌÌ998001”

相关代码如下。

    char buffer[5];
    char revBuffer[5];
    int i;
    int j=5;
    long number = 998001;

    itoa(number, buffer, 10);

    for(i=0; i<strlen(buffer);i++)
    {
        revBuffer[j] = buffer[i];
        j--;
    }

任何帮助都会很棒。 TIA!

最佳答案

您正在过度索引revBuffer。它的大小为5,这意味着您可以将其从0索引到4,但是在循环中使用的第一个索引是5。

关于c - 尝试反转char数组时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2914292/

10-12 16:13