#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
typedef struct {
int a;
short b[2];
} Test2;
typedef struct Test1{
int a;
char b[3];
Test2 c;
struct Test1 *d;
} Test1;
int main() {
Test1 x = {10, "Hi", {5, {-1, 25}}, 0};
Test1 *px = &x;
cout << &px << endl;
cout << &px->d << endl;
Test1 y;
x.d = &y;
cout << px->d << endl; // 野指针,随机值
cout << &px->d->c.b[0] << endl; // 野指针,随机值
cout << &px->d->c.b[1] << endl; // 野指针,随机值
cout << endl;
cout << "px->d->c.b[0]: " << px->d->c.b[0] << endl; // 野指针,随机值
cout << px->d->c.b[1] << endl; // 野指针,随机值
cout << endl;
cout << &px->c.b[0] << endl; // -1
cout << &px->c.b[1] << endl; // 25
cout << &px->c.b[2] << endl; // 越界
cout << "px->c.a: " << px->c.a << endl; // 5
cout << px->c.b[0] << endl; // -1
cout << px->c.b[1] << endl; // 25
cout << px->c.b[2] << endl; // 越界, 随机值
cout << endl;
cout << "px->b[0]: " << px->b[0] << endl; // 'H'
cout << px->b[1] << endl; // 'i'
// cout << (int)px->b[2] << endl; // '0'
printf("px->b[2]: %d\n", px->b[2]);
}
【c 结构体数组用法】
最新推荐文章于 2023-10-22 17:34:49 发布