[英]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.