[英]How to store an array of values of unknown size in a struct
我目前有我创建的这个结构,我已经在 main 中初始化了指针。 而且我坚持理解如何向指针添加一个值然后调整它的大小,因为它正在等待用户输入。 下面的代码是我的简化版本,基本上我想知道如何将作业的每个值添加到结构中的 jobNum 变量并调整它的大小,以便我可以为 jobNum 存储任意数量的值。 我对 memory 分配很陌生。
typedef struct {
int* jobNum;
}JobInfo;
void get_job(JobInfo* jobCalled, int job){
jobCalled->jobNum = job;
}
void main(int argc, char *argv[]){
jobCalled.jobNum = malloc(sizeof(int));
while(1){
//Other Processes
if (USER_INPUT == 'job'){
int job = argv[1];
get_job(&jobCalled, job);
}
}
}
听起来你在理解分配方面有困难。 我建议学习链表。 基本上简而言之:
typedef struct{
void *head;
void *next;
}myType;
void addElem(myType *ptr){
myType *new = (myType*)malloc(sizeof(myType));
ptr->next = new;
new->next = NULL;
}
这是做你正在谈论的事情的准系统方式,其中 head 元素指向你的第一份工作,但我相信它适合你学习铸造,分配等。你很可能需要创建一个 function也会初始化你的 head first job。 如果要删除元素,您还可能希望使用 free 从列表中取消分配 memory。 还值得注意的是,最好有一个单独的类型,它将是一个单独的元素,这样您只分配一个头指针,但如果您在理解这个概念时遇到困难,这种方法会更容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.