从函数返回嵌套结构

Returning a nested structure from a function

我正在编写我想要 return 嵌套结构的代码。我想知道该怎么做。

    static int ORDERID = 0;
    struct item
    {
        struct data
        {
            int orderid;
            char content[10][20]; 
        } details;
        struct node *next;
    };
    typedef struct item product;

所以新产品的插入包含两个部分:

  1. 详细结构

  2. 指向下一个产品的指针

details结构中我必须有不同类型的产品描述,比如:

  1. 鞋子及其 orderid,以及字符串数组中的其他详细信息 (char content[10][10])

  2. 衬衫及其 orderid,以及字符串数组中的其他详细信息 (char content[10][10])

因此,为了插入新产品,我需要一个函数来 return 一个 details structure 即产品的嵌套结构。

怎么做?

其实你可以在struct item外定义struct data,然后用struct datastruct item内定义一个变量details。也就是说,

struct data {
    int orderid;
    char content[10][20];
};

struct item {
    struct data details;
    struct item *next;
}

然后,您可以从函数中自由 return struct data 对象。

编辑:

如果你想创建一个可以 return 一个 struct data 对象的函数,你可以执行以下操作:-

struct data * function_data() {
    struct data *someData;
    someData->orderid = 16;
    someData->content[0] = "Shoes";
    return someData;
}

我希望这能进一步提高答案的质量。

您可以使用 struct data 作为函数的 return 类型