MST

星途 面试题库

面试题:C语言中嵌套结构体使用malloc动态分配内存的基础问题

假设有如下嵌套结构体定义: ```c struct Inner { int value; char str[10]; }; struct Outer { struct Inner inner; double data; }; ``` 请编写代码使用`malloc`为`struct Outer`类型的变量动态分配内存,并正确初始化`inner`结构体中的`value`为10,`str`为"hello",以及`data`为3.14,最后记得释放内存。
20.5万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    // 使用malloc为struct Outer类型的变量动态分配内存
    struct Outer *outer = (struct Outer *)malloc(sizeof(struct Outer));
    if (outer == NULL) {
        printf("内存分配失败\n");
        return 1;
    }

    // 初始化inner结构体中的value为10,str为"hello"
    outer->inner.value = 10;
    strcpy(outer->inner.str, "hello");

    // 初始化data为3.14
    outer->data = 3.14;

    // 打印验证
    printf("inner.value: %d\n", outer->inner.value);
    printf("inner.str: %s\n", outer->inner.str);
    printf("data: %lf\n", outer->data);

    // 释放内存
    free(outer);

    return 0;
}