我有一个方法签名:如何取一个值,在指针和复制到另一个指针
void word_not(lc3_word_t *R, lc3_word_t *A)
我需要的* A的内容,并将它们复制到* R。
我该怎么做?
我试过转让
* R = * A;但我的编译器抱怨。
任何想法?
我有一个方法签名:如何取一个值,在指针和复制到另一个指针
void word_not(lc3_word_t *R, lc3_word_t *A)
我需要的* A的内容,并将它们复制到* R。
我该怎么做?
我试过转让
* R = * A;但我的编译器抱怨。
任何想法?
memcpy(R, A, sizeof(lc3_word_t));
memcpy拷贝的特定数目从A到R.字节这假设这个有意义的类型的lc3_word_t在于R指向分配的空间的结构。
你错过了一个封闭的paren。 –
是的,就像大卫说的那样,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));
}
}
编译器如何“抱怨”? (错误信息是什么?) – Mysticial
gcc -g -Wall -std = c99 -c logic.c logic.c:在函数'word_not'中: logic.c:18:错误:赋值中的不兼容类型 make:* ** [logic.o]错误1 –
呃......它们是完全相同的类型?这是给你的吗? – Mysticial