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

怎么正确调用函数中的指针,并改变它,

2012-02-25 
如何正确调用函数中的指针,并改变它,在线等。例如void*memcopy(void*pvto,constvoid*pvfrom,size_tsize){as

如何正确调用函数中的指针,并改变它,在线等。
例如
void*   memcopy(void*   pvto,const   void*   pvfrom,size_t   size)
{
assert((pvto!=NULL)&&(pvfrom!=NULL));
                  byte*   pbto=(byte*)pvto;
byte*   pbfrom=(byte*)pvfrom;
while(size--> 0)
*pbto++   =   *pbfrom++;
                  cout < <pbto < <endl;
return   pvto;
}
int   _tmain(int   argc,   _TCHAR*   argv[])
{
char   p[]= "abcdefg ";
const   int   len=strlen(p);
char*   q;
memcopy(q,p,len);        
return   0;
}
--------------
定义char   *q   想在函数中改变它,但定义成char*   p   就变成CONST了吧?不能改变其值,想问下如何定义指针,并改变他的内容?在线等

[解决办法]
int _tmain(int argc, _TCHAR* argv[])
{
char p[]= "abcdefg ";
const int len=strlen(p);
//char* q;//这里的p没有指向合法内存.好比给你一把钥匙,却没告诉你去开哪里的门
char* q= (char*)malloc(sizeof(char)*(len+1));
memcopy(q,p,len);
return 0;
}
[解决办法]
void* memcopy(void* pvto,const void* pvfrom,size_t size)
{
//assert((pvto!=NULL)&&(pvfrom!=NULL));
byte* pbto=(byte*)pvto;
byte* pbfrom=(byte*)pvfrom;
while(size--> 0)
*pbto++ = *pbfrom++;
return pvto;
}
int main(int argc, char* argv[])
{
char p[]= "abcdefg ";
const int len=strlen(p);
char* q=new char[len+1];
memset(q,0,len+1);
memcopy(q,p,len);
cout < <q < <endl;
return 0;
}

热点排行
Bad Request.