📄 subject_27817.htm
字号:
<p>
序号:27817 发表者:嵇山 发表日期:2003-01-15 15:22:27
<br>主题:又有新问题,memcpy
<br>内容:内存中一段 a="w.o.r.k.g.r.o.u.p a.s.p.h.p"<BR>char *domain;<BR><BR>memcpy(domain,a,sizeof(a));<BR><BR>printf("%s",domain);<BR>不知道为什么不能输出,输出的只是w.<BR>不知道是什么原因,<BR>但如果<BR> uchar *p=DomainName;<BR> int j;<BR>for(j=0;j<32;j++)<BR> printf("%c",*p++);<BR>能看到a一样的结果<BR>我函数里面要返回domain,返回的只是一个w.<BR>请问大家是什么原因
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:74LS373 回复日期:2003-01-15 15:33:27
<br>内容:char *domain=new char[个数];
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:嵇山 回复日期:2003-01-15 15:35:30
<br>内容:呵呵,<BR>对不起<BR>我漏写了一句<BR><BR>Domain = (uchar *)(malloc(32*sizeof(char)));
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:在水一方 回复日期:2003-01-15 15:40:25
<br>内容:出现上述问题的原因是:<BR> 1> 不能将domain简单定义成一个指针类型char *,而是要分配空间<BR> 2> char *a = "w.o.r.k.g.r.o.u.p a.s.p.h.p"; --> sizeof(a) 值为 4;<BR> 但char a[] = "w.o.r.k.g.r.o.u.p a.s.p.h.p"; --> sizeof(a) 值为 strlen(a) + 1<BR><BR>解决方法:<BR> 将语句<BR> char *domain;<BR> memcpy(domain,a,sizeof(a));<BR> 改成<BR> char domain = new char[255] // 255只是一个例子,要足够大<BR> memcpy(domain,a,strlen(a)+1);<BR><BR>2003-1-15 15:49:24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -