首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-11-04 
请教:数组与指针的问题程序代码如下;boolpointerarray(void*p){while(p[j]NULL&&j i){printf( %d\n ,p

请教:数组与指针的问题
程序代码如下;
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++

热点排行