我有一个简单的问题,但我需要了解它背后的概念。
如何通过将第一个结构的数据实例化为第二个结构的指针来访问它。
如果我将第一个结构的数据成员作为指针,那么如何通过访问它们在其中打印出值,例如
struct temp
{
int a =5;
float b = 6.0;
i = &a;
f = &b;
int *i;
float *f;
};
我正在处理一个复杂的代码,因此我需要了解其背后的逻辑,因为它是如何在内存和逻辑方面工作的。
非常感谢您的时间。
#include <iostream>
using namespace std;
struct temp {
int i=5;
float f=6.0;
};
struct qlt {
temp *d;
};
int sum (qlt *s)
{
int a = s->d->i;
// std::cout<<a;
}
int main() {
qlt x;
//int b = ;
std::cout <<sum(&x);
return 0;
}
答案 0 :(得分:2)
qlt x;
这将创建一个qlt
好吧,但其中没有d
。因此,您有一个悬空的指针(因为它也未初始化)。
qlt x;
temp b;
x.d = &b;
这将是C风格的解决方案。 C ++有更好的方法来实现它。
此刻忘记 all 指针,并使用STL。