显示数组结构 c++

Displaying an Array struct c++

问题是,当我尝试显示这个数组时,它 returns 我知道每个组件的内存方向。非常感谢,如果有人回答我很抱歉,但我找不到它。
已编辑

 #include <stdio.h>
    #include <fstream>
    using namespace std;
    struct tabla{
        int Ar[9][9];
    };
    void print(){
        tabla matrix[9][9]={{1,2,3,4,5,6,7,8,9},
        {9,8,7,4,5,6,1,2,3},
        {7,3,2,1,5,6,4,8,9},
        {9,5,1,7,5,3,4,8,6},
        {7,4,1,8,5,2,9,6,3},
        {3,6,9,2,5,8,7,8,4},
        {0,1,4,7,2,5,8,8,7},
        {0,0,1,0,0,0,0,0,0},
        {1,1,1,1,1,1,1,1,1}};

        for(int i=0;i<9;i++){
            for(int j=0;j<9;j++){
                cout<<matrix[i][j].Ar<<' ';
            }
            cout<<endl;
        }
    }   `

    int main(){

        print();
        }

我试过写(因为我在很多地方读到这是由于指针)
cout<<**new[i][j].Ar<<' ';它有效,但仅适用于每个 'vector' 的第一个组件,之后它打印零。

您正在使用名称 new 作为变量名,这将使您的代码行为与您预期的完全不同。 用别的东西。此外,Array 已经存在于 std:: 中,因此这也是一个非常糟糕的选择。

我认为你的意思如下

#include <iostream>

struct Array
{
    const static size_t N = 9;
    int Ar[N][N];
};

void print()
{
    Array *a = new Array 
    {
        {
            {1,2,3,4,5,6,7,8,9},
            {9,8,7,4,5,6,1,2,3},
            {7,3,2,1,5,6,4,8,9},
            {9,5,1,7,5,3,4,8,6},
            {7,4,1,8,5,2,9,6,3},
            {3,6,9,2,5,8,7,8,4},
            {0,1,4,7,2,5,8,8,7},
            {0,0,1,0,0,0,0,0,0},
            {1,1,1,1,1,1,1,1,1}
        }
    };

    for ( size_t i = 0; i < Array::N; i++ )
    {
        for ( size_t j = 0; j < Array::N; j++ )
        {
            std::cout << ( *a ).Ar[i][j] <<' ';
        }
        std::cout<< std::endl;
    }

    delete a;
}   


int main()
{
    print();
}

输出为

1 2 3 4 5 6 7 8 9 
9 8 7 4 5 6 1 2 3 
7 3 2 1 5 6 4 8 9 
9 5 1 7 5 3 4 8 6 
7 4 1 8 5 2 9 6 3 
3 6 9 2 5 8 7 8 4 
0 1 4 7 2 5 8 8 7 
0 0 1 0 0 0 0 0 0 
1 1 1 1 1 1 1 1 1 

考虑到您可以在函数 print 中使用智能指针 std::unique_ptr