这不是数组/指针在 C++ 中的工作方式。
该数组存储在内存中的某个位置。为了引用相同的数据,您需要一个指向数组开头的指针:
int* temp = logic[2];
或者,如果您需要该数组的副本,则必须分配更多空间。
静态:
int temp[9];
for (int i = 0; i < 9; i++) {
temp[i] = logic[2][i];
}
动态:
// allocate
int* temp = new int(9);
for (int i = 0; i < 9; i++) {
temp[i] = logic[2][i];
}
// when you're done with it, deallocate
delete [] temp;
或者,由于您使用的是 C++,如果您不想担心所有这些内存内容和指针,那么您应该使用std::vector<int>
动态大小的数组和std::array<int>
静态大小的数组。
#include <array>
using namespace std;
array<array<int, 9>, 4> logic = {
{0,1,8,8,8,8,8,1,1},
{1,0,1,1,8,8,8,1,1},
{8,1,0,1,8,8,8,8,1},
{8,1,1,0,1,1,8,8,1}
}};
array<int, 9> temp = logic[2];