如何在指针处获取值并复制到另一个指针

时间:2011-09-29 03:36:09

标签: c pointers

我有一个方法签名:

void word_not(lc3_word_t *R, lc3_word_t *A)

我需要取* A的内容并将它们复制到* R.

我该怎么做?

我尝试过分配

* R = * A;但是我的编译器抱怨道。

有什么想法吗?

2 个答案:

答案 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));
     }
}