我有一个方法签名:
void word_not(lc3_word_t *R, lc3_word_t *A)
我需要取* A的内容并将它们复制到* R.
我该怎么做?
我尝试过分配
* R = * A;但是我的编译器抱怨道。
有什么想法吗?
答案 0 :(得分:3)
memcpy(R, A, sizeof(lc3_word_t));
memcpy将特定数量的字节从A复制到R.这假设这对于Rc指向已分配空间的类型为lc3_word_t的结构是有意义的。
答案 1 :(得分:0)
是的,就像David说的那样,memcpy应该有所帮助。
但要确保将内存分配给R,否则最终会破坏其他一些变量的内存。如果你打算在这个函数中分配内存(我更喜欢这种方式),那么改变签名如下
void word_not(lc3_word_t **pR, lc3_word_t *A)
{
*pR = (lc3_word_t*)malloc(sizeof(lc3_word_t));
if(*pR != 0)
{
memcpy(*pR, A, sizeof(lc3_word_t));
}
}