В следующем коде C ++ определяется три разных структуры, каждая из которых содержит указатель каждой из двух других структур. Интуитивно, я бы ожидал, что вывод внутри функционального вызова и что за пределами вызова функции будет одинаковым. Однако выходы разные. Я новичок в C ++. Я думаю, это связано с какой-то известной причиной. Кто -нибудь может сказать мне, в чем причина и как исправить код? Большое спасибо. < /P>
#include
#include
using namespace std;
struct S2;
struct S3;
struct S1{
S2* s2;
S3* s3;
double a;
S1 (): a(0),s2(nullptr), s3(nullptr) {}
};
struct S2{
S1* s1;
S3* s3;
double b;
S2 (): b(0), s1(nullptr), s3(nullptr) {}
};
struct S3{
S1* s1;
S2* s2;
double c;
S3 (): c(0), s1(nullptr), s2(nullptr) {}
};
tuple getelements(){
S1 s1;
S2 s2;
S3 s3;
s1.a = 1.0;
s1.s2 = &s2;
s1.s3 = &s3;
s2.b = 2.0;
s2.s1 = &s1;
s2.s3 = &s3;
s3.c = 3.0;
s3.s2 = &s2;
s3.s1 = &s1;
cout s3->c c
Выходы < /p>
3
-6.19511e-264
Подробнее здесь: https://stackoverflow.com/questions/796 ... roblematic
C ++ PTR структуры внутри другой структуры, возврат функции является проблематичным [дублировать] ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение