gpt4 book ai didi

c++ - 将结构内的二维数组传递给另一个结构

转载 作者:行者123 更新时间:2023-11-28 00:21:05 25 4
gpt4 key购买 nike

我正在尝试用 C/C++ 编写一个棘手的代码。我在一个结构中有一个二维数组指针,我想将二维数组的第 i 行(在第 3 下方的示例中)的地址作为指向另一个结构的指针传递。

代码如下:

主要.cpp

#include <iostream>
#include <cstdlib>

using namespace std;

typedef struct
{
unsigned int t1[5][10];
} TEST1;

typedef struct
{
unsigned int * t2;
}TEST2;

TEST1 a;
TEST2 b;


unsigned int test2(unsigned int * data)
{
int i,j,k;
k=0;
for(i=0;i<5;i++)
{
for(j=0;j<10;j++)
{
a.t1[i][j]=k;
cout << a.t1[i][j] << " ";
k++;
}
cout << endl;
}

data = &(a.t1[3][0]);
cout << *data << endl;

return 10;
}

void test()
{
unsigned int size,i;

size = test2(b.t2);

cout << (b.t2) << endl;

}

int main()
{
test();
return 0;
}

代码的输出是:

0 1 2 3 4 5 6 7 8 9 
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
30
0

为什么在里面打印“data”得到正确答案而打印“b.t2”得到 0?似乎“数据”没有作为对“b.t2”的引用传递

最佳答案

您只传递了 b.t2 的值至 test2 . b.t2 的值本身不会改变。当您调用 cout << (b.t2) << endl; 时它仍然是 NULL

关于c++ - 将结构内的二维数组传递给另一个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27424793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com