| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1111 人关注过本帖
标题:关于指针的一个小题目,确总是执行时报内存出错。。很纠结!!!
取消只看楼主 加入收藏
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
关于指针的一个小题目,确总是执行时报内存出错。。很纠结!!!
程序代码:
#include<stdio.h>
int main()
{
    char ca, ch, *p1, *p2, *s[4]={"nokia","apple","sansung","htc"};
    for(int i=0;i<4;i++)
    {
        p1=p2=s[i];
        ch=*(p1+i);
        while(*p1 != '\0')
        {
            printf("111111111111\n");
            if(*p1 != ch)
            {
            //    printf("%c\n",*p2);
            //    printf("%c\n",*p1);
                *p2 = *p1;
                p2++;
            }
            p1++;
        }
    }
}
我测试了下,程序是在进入if后执行不下去了,但是不知道为什么。求解惑!
2014-05-17 00:29
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:0 
我是在vc6.0上编译运行的

kajj->1314 努力每一天。
2014-05-17 00:31
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:0 
回复 6 楼 茅十八
s[i]我觉得这样是可行的,这个程序是说明删除指定字符串中的字符。我改变不是地址,*s[i],代表的是指定字符串的第一个字符,*(s[i]+1)就是第二个字符,这个应该是不是常量没关系吧

kajj->1314 努力每一天。
2014-05-17 12:45
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:0 
不要沉下来啊!求解答

kajj->1314 努力每一天。
2014-05-19 11:02
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:0 
回复 10 楼 wp231957
程序代码:
#include<stdio.h>
int main()
{
    char ca, ch, *p1, *p2, *s[4]={"nokia","apple","sansung","htc"};
    for(int i=0;i<4;i++)  
    {
        p1=p2=s[i];//将i=0时将nokia中的第一个字符地址复制给p1、p2.
        ch=*(p1+i); //这里将 nokia中的第一个字符 n 赋值给ch 、当i=1就是apple中的p赋值给ch,下面的代码就是删除对应字符串中 i 指定的字符
        while(*p1 != '\0')
        {
            if(*p1 != ch) 判断p1指向的字符是不是ch, 若是p1直接++指向下一个字符,不是就将p1和p2同时++
            {
                *p2 = *p1;
                p2++;
            }
            p1++;
        }
    }
}

kajj->1314 努力每一天。
2014-05-19 11:17
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:0 
这是一道考试的题目,个人觉得对理解指针数组很有帮助

kajj->1314 努力每一天。
2014-05-19 11:19
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:0 
回复 13 楼 embed_xuel
指向字符串的指针。。。不是么?

kajj->1314 努力每一天。
2014-05-19 11:21
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:0 
回复 16 楼 embed_xuel
但我并没有去改变它啊,意思就是说*s[0],这个不能代表第一个字符串的第一个字符?还是不能赋值操作?

kajj->1314 努力每一天。
2014-05-19 11:28
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:0 
回复 17 楼 wp231957
目的很明确啊。。。

kajj->1314 努力每一天。
2014-05-19 11:29
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:0 
回复 22 楼 embed_xuel
明白了!3Q

kajj->1314 努力每一天。
2014-05-19 11:36
快速回复:关于指针的一个小题目,确总是执行时报内存出错。。很纠结!!!
数据加载中...
 
   



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

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