将一个指针数组上的值拷贝到另一个指针数组当中,但第二段代码却无法运行。
第一种方法直接让指针q指向指针p,从而让指针q获取指针p所指向字符串的值,代码如下:程序代码:
#include"stdio.h" void strcpy(char *q[],char *p[],int n){ int i; int j,m; for(i=0;i<n;i++) q[i]=p[i]; for(j=0;j<n;j++) printf("%s ",q[j]); } int main(void){ char *p[5]={"asdg","uewnngn","sngn","fhh","mngkkd"}; char *q[5]; strcpy(q,p,5); return 0; }
第二种方法将指针p所指向字符的值一个一个拷贝给指针q.但却无法运行,是什么原因?代码如下:
程序代码:
#include"stdio.h" void strcpy(char *q[],char *p[],int n){ int i; int j,m; for(i=0;i<n;i++) for(m=0;m<100&&*(p[i]+m);m++) *(q[i]+m)=*(p[i]+m); for(j=0;j<n;j++) printf("%s ",q[j]); } int main(void){ char *p[5]={"asdg","uewnngn","sngn","fhh","mngkkd"}; char *q[5]; strcpy(q,p,5); return 0; }
[此贴子已经被作者于2020-5-11 02:47编辑过]