在C中填充结构数组

时间:2020-11-09 14:49:39

标签: arrays c pointers struct

我最近已经从C#转移到C,而内存方面的东西绝对让我难堪。我正在编写程序,需要声明struct数组并逐个填充它,但是到目前为止,我什至无法打印它。 参数应为字符串数组。我正在做一个CMD东西,其中id是命令的名称,它是从字符串到枚举的转换。参数是命令的选项。到目前为止,我已经将命令id和char *提取到各个选项中,但是我需要一种存储它们的方法。这就是为什么我要去买char **的原因。

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>

typedef struct
{
    int id;
    char** arguments;
} myStruct_t;

void printStructs(myStruct_t* myStructs[])
{
    for (size_t i = 0; i < 5; i++)
    {
        printf("%i %s", myStructs[i].id, myStructs[i].arguments[0]);
    }
}

int main(int argc, char** argv)
{
    char* strings[] = { "fooo", "ooof", "wack", "yeet", "bruh" };
    myStruct_t structs[5];
    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            structs[i].id = i;
            structs[i].arguments = strings[i];
        }
    }

    printStructs(&strings);
    return 0;
}

0 个答案:

没有答案
相关问题