运行时内存转储错误
Memory Dump error on runtime
这段代码有什么问题?它在运行时显示内存转储错误
#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;
。更正 main 的拼写以及变量的 uppercase/lowercase。还要在末尾添加一个 return 0;
,因为你有一个 int main()
而不是 void.
您似乎是 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
}
这段代码有什么问题?它在运行时显示内存转储错误
#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;
。更正 main 的拼写以及变量的 uppercase/lowercase。还要在末尾添加一个 return 0;
,因为你有一个 int main()
而不是 void.
您似乎是 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
}