| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 690 人关注过本帖
标题:指针的应用问题,暂时还未搞清
只看楼主 加入收藏
z_j_j_1
Rank: 4
等 级:业余侠客
威 望:1
帖 子:62
专家分:213
注 册:2015-4-4
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:10 
指针的应用问题,暂时还未搞清
#include<stdio.h>
#include<string.h>
#include<malloc.h>
int main(int argc,char *argv[])
{
    void *p1=0;
    char *p2=0;
    p2 = p1;
    p1 = (char *)malloc(20);
    strcpy(p2,"ttlupdec");
    printf("%s\n",(char *)p1);
    while(1);
}


最后输出:
zjj2@K40AF:~/c_jp$ gcc voidzj.c
zjj2@K40AF:~/c_jp$ ./a.out
段错误 (核心已转储)
zjj2@K40AF:~/c_jp$

为什么不能输出:ttlupdec  呢?

搜索更多相关主题的帖子: include 
2015-04-25 17:44
z_j_j_1
Rank: 4
等 级:业余侠客
威 望:1
帖 子:62
专家分:213
注 册:2015-4-4
收藏
得分:0 
回复 楼主 z_j_j_1
顶下哦!
2015-04-25 18:09
z_j_j_1
Rank: 4
等 级:业余侠客
威 望:1
帖 子:62
专家分:213
注 册:2015-4-4
收藏
得分:0 
回复 楼主 z_j_j_1
再自顶一下哦!
2015-04-26 20:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
你说一下strcpy()函数是干嘛的?

授人以渔,不授人以鱼。
2015-04-26 20:53
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:4 
两个不同类型的指针可以直接相互赋值?应该无法通过编译。另:要想得到正确结果,也应该是在p1获得分配了空间的指针后再给p2才行的,提前赋值p2仍然是一个空指针。

能编个毛线衣吗?
2015-04-26 22:16
z_j_j_1
Rank: 4
等 级:业余侠客
威 望:1
帖 子:62
专家分:213
注 册:2015-4-4
收藏
得分:0 
回复 4楼 TonyDeng
strcpy(char p1[],char p2[])    拷贝字符串P2到p1中。
2015-04-27 22:19
z_j_j_1
Rank: 4
等 级:业余侠客
威 望:1
帖 子:62
专家分:213
注 册:2015-4-4
收藏
得分:0 
回复 5楼 wmf2014
这位大神,我确实是编译通过的哦。linux GCC 环境下确实可以支持此种用法的。大神也可试下的。
2015-04-27 22:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你套一下自己写的实参,目标空间在哪里?

授人以渔,不授人以鱼。
2015-04-27 22:25
zla1215
Rank: 1
等 级:新手上路
帖 子:3
专家分:4
注 册:2015-4-26
收藏
得分:4 
段错误是内存出错吧。把p2=p1写在malloc语句后面试试
  还有要free一下 末尾要有exit语句 whlie不知道啥意思
2015-04-28 02:54
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:4 
int a=1;
    int b=0;
    b = a;
    a = 5;

    请问楼主,这时b的值是多少?
    再看你这段代码,
    void *p1=0;
    char *p2=0;
    p2 = p1;
    p1 = (char *)malloc(20);

    这时p2应该是多少?

总有那身价贱的人给作业贴回复完整的代码
2015-04-28 08:22
快速回复:指针的应用问题,暂时还未搞清
数据加载中...
 
   



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

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