如何为另一个不同类型的指针分配指针

时间:2013-12-20 13:54:16

标签: c pointers types assign

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.
}

请帮助!!

2 个答案:

答案 0 :(得分:4)

*ptr1[i] = *ptr2[i];

无效。 ptr1[i]unsigned intptr2[i]int*一元运算符只能应用于指针,而不能应用于整数。它应该是:

ptr1[i] = (unsigned int)ptr2[i];

答案 1 :(得分:4)

Barmar的回答是正确的。这是考虑它的另一种方式。

*p[j] 

相同
*(p[j])

相同
*(*(p + j))

相同
**(p+j)

现在很明显你要解除引用两次。您打算取消引用一次。只需删除外部*