unsigned int *ptr1;
int * ptr2;
将ptr1分配给ptr2时,
*ptr1 = *ptr2;
编译器抛出错误。
如何执行此任务?
对于34类型的unsigned int执行ptr1的malloc。 ptr2已填充值。 必须为34个索引执行此分配。 说
for(i=0;i<34;i++)
{
*ptr1[i] = *ptr2[i] // this is the line where my compiler throws error.
}
请帮助!!
答案 0 :(得分:4)
*ptr1[i] = *ptr2[i];
无效。 ptr1[i]
是unsigned int
,ptr2[i]
是int
。 *
一元运算符只能应用于指针,而不能应用于整数。它应该是:
ptr1[i] = (unsigned int)ptr2[i];
答案 1 :(得分:4)
Barmar的回答是正确的。这是考虑它的另一种方式。
*p[j]
与
相同*(p[j])
与
相同*(*(p + j))
与
相同**(p+j)
现在很明显你要解除引用两次。您打算取消引用一次。只需删除外部*
。