早上好! 我必须处理一个模拟列表的结构数组(全局变量)。实际上,每次我调用方法时,我都必须增加数组1的大小并将其插入到新结构中。模拟数组列表
由于数组的大小是静态的,我的想法是使用指针这样的:
- 的结构数组被声明为指针的第二结构阵列。
- 每次我调用increaseSize()方法时,旧数组的内容都被复制到一个新的n + 1数组中。
- 全局数组指针被更新为指向一个新的数组
从理论上讲,该解决方案似乎很容易......但我℃的小白。哪里错了?
struct task {
char title[50];
int execution;
int priority;
};
struct task tasks = *p;
int main() {
//he will call the increaseSize() somewhere...
}
void increaseSize(){
int dimension = (sizeof(*p)/sizeof(struct task));
struct task newTasks[dimension+1];
for(int i=0; i<dimension; i++){
newTasks[i] = *(p+i);
}
free(&p);
p = newTasks;
}
'sizeof(* p)/ sizeof(struct task)'看起来很可疑 – harold
'struct task tasks = * p;''p是什么? – joop
p应当是当前任务链接到 –