运行时出现内存转储错误

Memory Dump error on runtime

本文关键字:转储 错误 内存 运行时      更新时间:2023-10-16

这段代码有什么问题?它在运行时显示内存转储错误

#include<iostream>
using namespace std ;
int main()
{
    int A[3][4] = {{3, 1, 8, 11}, {4, 12, 9, 10}, {7, 5, 2, 6}};
    int **p = A;
    P[1][2] = 99;
    cout<<A[1][2] ;
}

int **p = A[0][0]更改为 int *p = &A[0][0] 。在下一行中,写下以下*p = *((int*)p + 1 * NUM_OF_COLUMNS + 2) = 99;,其中NUM_OF_COLUMNS是数字 4,而不是P[1][2] = 99;。更正变量的主写和大写/小写的拼写。还要在末尾添加一个return 0;,因为您有一个int main()而不是一个空白。

你似乎对 C++ 或编程不熟悉这样的问题,不要感觉不好,因为指针可能很棘手,如果你不知道你不知道。我很确定这会对你有所帮助。请记住:)选择最佳答案。

 #include <iostream>
    using namespace std;
    int main() {
        int A[3][4] = { { 3, 1, 8, 11 }, { 4, 12, 9, 10 }, { 7, 5, 2, 6 } };
        cout << "Before pointer change A[1][2] = " << A[1][2] << endl;
        int *p;       //Set pointer 
        p = &A[1][2]; //Set memory address to pointer don't forget '&'
        *p = 99;      //Change integer
        cout << "After pointer change  A[1][2] = " << A[1][2] << endl;
        return 0; // you need a 'return 0;' because your main is int
    }