读书人

请问:数组与指针的有关问题

发布时间: 2012-11-04 10:42:42 作者: rapoo

请教:数组与指针的问题
程序代码如下;
bool pointerarray(void *p)
{
while(p[j] = NULL&&j <i)
{
printf( "%d\n ",p[j]);
p++;// 说明不知道加法从何处而起,导致位置的不确定性
}
return false;
}
int main(void)
{
int a[10];
for (int i = 0;i <10;i++)
{
a[i] = i;
}pointerarray(a,10);
return 0;
}

出现的问题是:“void *”: 未知的大小

请问为什么会这样,应该怎样改正。


[解决办法]
void* 指针是不能作为 ++ --的操作数的 也不能能 进行 += -= 这些计算
我们都知道

C/C++ code
int* p;...p++;//是p存储的值+sizeof(int)/*如果 你用void*指针进行++*/void* p;p++;//这里p存储的值+sizeof(void)????是什么东西
[解决办法]
转换成某种类型的指针再用,比如在while之前定义
int *q=(int*)p;
然后把p++改成q++

读书人网 >C++

热点推荐