-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個字節) –