| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1128 人关注过本帖
标题:将一个指针数组上的值拷贝到另一个指针数组当中,但第二段代码却无法运行。
只看楼主 加入收藏
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
结帖率:90.38%
收藏
已结贴  问题点数:20 回复次数:2 
将一个指针数组上的值拷贝到另一个指针数组当中,但第二段代码却无法运行。
第一种方法直接让指针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编辑过]

搜索更多相关主题的帖子: 数组 for char 指针 int 
2020-05-11 02:46
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
收藏
得分:10 
因为q没有指向的目标 ,  可以先指向,也可以赋值的时候自己malloc
程序代码:
#include"stdio.h"
void strcpy2(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 arr[5][100] = {'\0'};
    char *q[5]={arr[0],arr[1],arr[2],arr[3],arr[4]};
    strcpy2(q,p,5);
    return 0;
}
2020-05-11 07:35
qing_yx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:25
专家分:70
注 册:2020-4-26
收藏
得分:10 
#include <stdio.h>
void strcpy1(char q[][100], 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][100] = { 0 };
    strcpy1(q, p, 5);

    return 0;
}
2020-05-11 10:39
快速回复:将一个指针数组上的值拷贝到另一个指针数组当中,但第二段代码却无法运 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019244 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved