#include <stdio.h>
#include <stdlib.h>
// 定义Inner结构体
typedef struct Inner {
float member1;
float member2;
} Inner;
// 定义Outer结构体
typedef struct Outer {
int outerMember;
Inner *innerPtr;
} Outer;
int main() {
Outer *outer = (Outer *)malloc(sizeof(Outer));
if (outer == NULL) {
fprintf(stderr, "Failed to allocate memory for Outer\n");
return 1;
}
outer->innerPtr = (Inner *)malloc(sizeof(Inner));
if (outer->innerPtr == NULL) {
fprintf(stderr, "Failed to allocate memory for Inner\n");
free(outer);
return 1;
}
// 填充数据
outer->outerMember = 10;
outer->innerPtr->member1 = 3.14f;
outer->innerPtr->member2 = 2.71f;
// 使用数据
printf("Outer member: %d\n", outer->outerMember);
printf("Inner member1: %f\n", outer->innerPtr->member1);
printf("Inner member2: %f\n", outer->innerPtr->member2);
// 释放内存
free(outer->innerPtr);
free(outer);
return 0;
}