我最近已经从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;
}