我完全不知道为什么 memcpy 或 memmove 不适合我。
我正在尝试将一个结构(joblist)数组复制到另一个相同结构(Q)的数组以用于数据操作,同时保持我的原始数组完好无损。
我花了很多时间在 SO 和谷歌上解决这个问题,但我不知道为什么它不起作用。
Q = new AdjacencyList[numjobs + 1]; //create a queue
// Q = joblist;
memmove(&Q, &joblist, sizeof(AdjacencyList) );
Q[0].jobnum = 30;
我试图让 Q = joblist,但是当我将一个值更改为一个时,它在两个中都发生了变化。
struct AdjacencyList {
NodeType state; // what is present state of job?
NodePath path; // is job part of critical path?
int jobnum;
int edges;
int tocount;
int fromcount;
int to[50];
int from[50];
};
AdjacencyList *joblist;
AdjacencyList *Q;
这是我创建的结构。
*** Error in `p5.out': corrupted double-linked list: 0x0989e8c0 ***
======= Backtrace: =========
/lib/libc.so.6[0x47975143]
/lib/libc.so.6[0x4797b984]
/lib/libc.so.6[0x4797cd28]
/lib/libstdc++.so.6(_ZdlPv+0x20)[0x47d8d9e0]
/lib/libstdc++.so.6(_ZdaPv+0x1c)[0x47d8da3c]
任何帮助将不胜感激。谢谢。
子