-1
我有一个结构如何使用memcpy()函数动态分配,结构
typedef struct process {
int pid;
int burst_t;
int io_t;
int pri;
int arrive;
int wait;
int turnaround;
int work;
int remain;
} process;
和机能的研究
void move_process(process* dest, int *size_dest, process* src, int *size_src)
{
memcpy(dest + (sizeof(process))*(*size_dest), src, sizeof(process));
(*size_dest)++;
(*size_src)--;
printf("%d\n", sizeof(process));
memmove(src, src + sizeof(process), sizeof(process)*(*size_src));
}
ready = (process*)malloc(sizeof(process)*numberOfProcess);
remain = (process*)malloc(sizeof(process)*numberOfProcess);
move_process(ready, &s_ready, remain, &s_remain);
在功能move_process()的最后一行,
我要删除进程中的第一个进程* src 但它不起作用。
我该怎么办?
的'memcpy'和'memmove'参数是可疑 –
'的memcpy(DEST + * size_dest,SRC的sizeof(过程));'...,为的memmove(类似) – joop
也许你不知道'src + 1'表示指向下一个'process'对象(不要增加1个字节) –