【发布时间】:2017-03-14 06:45:11
【问题描述】:
我正在为一个项目构建服务器,我需要以有序的方式存储一堆值。我一直在寻找几个小时,我还没有弄清楚如何。
我构建了一个结构如下:
struct WHITEBOARD{
int line;
char type;
int bytes;
char string[1024];
} *Server;
然后在我的 main 函数中,我想动态分配内存以创建一个大小为 [argv[1]] 的结构 WHITEBOARD 数组(最终)。我想使用 calloc,在我的研究中我发现了以下内容:
void main()
{
struct whiteboard (*Server) = (struct whiteboard*) calloc(10, sizeof(*Server));
(*Server).line = 2;
printf("Test: %d\n",(*Server).line);
}
这可行,但我似乎不知道如何将 Server 转换为结构数组,以便我可以引用 (*Server)[1].line 并从函数分配给这个堆绑定变量。我打算这样做。
char* doThing(struct whiteboard Server)
{
(*Server)[1].line = 4;
return;
}
并且能够从 main 打印新绑定的变量。
这可能是一个愚蠢的问题,但任何帮助都会很棒。谢谢!
【问题讨论】:
-
这段代码甚至无法编译......
-
(*Server)[1].line-->Server[1].line...还有什么? -
对不起,结构和 main() 应该一起编译。然而,该功能没有任何意义。这是我想做的伪代码。
标签: c arrays dynamic struct calloc