| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1350 人关注过本帖
标题:一个关于串赋值的错误...
取消只看楼主 加入收藏
命运Z魔方
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2016-10-10
结帖率:66.67%
收藏
 问题点数:0 回复次数:3 
一个关于串赋值的错误...
如题
自己看书上例子的时候试着敲了一下代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define OVERFLOW -1
#define OK 1
typedef struct{
    char *ch=NULL;
    int len;
}HString;

int StrAssign(HString *s,char src[]){
    char *dp=NULL,*sp=src;
    int len=strlen(src);
    dp=(char*)malloc(sizeof(char)*len);
    if(!dp)
    return OVERFLOW;
    if(s->ch)
    free(s->ch);
    s->ch=dp;
    if(*sp)
    *dp++=*sp++;
    return OK;
}
int main(){
    char src[255]="asdghwajkgnh";
    HString *s;
    printf("执行字符串赋值\n");
    if(StrAssign(s,src)==OK)
    printf("%s,执行完毕\n",s->ch);
    else if(StrAssign(s,src)==OVERFLOW)
    printf("字符串空间溢出\n");
    return 0;
}

结果调试的时候出现了“Program received signal SIGSEGV,Segmentation fault.”这个....
有没有大佬指点一下是咋回事啊..
搜索更多相关主题的帖子: 赋值 include char int return 
2017-11-26 21:01
命运Z魔方
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2016-10-10
收藏
得分:0 
回复 2楼 wp231957
啊,啥意思啊...我就是这样写的啊...还是错到这了的意思啊
2017-11-27 12:26
命运Z魔方
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2016-10-10
收藏
得分:0 
回复 6楼 rjsp
自己看的书上的一些例子,有的地方没弄清楚就原搬了...谢谢大佬指点
2017-11-27 21:36
命运Z魔方
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2016-10-10
收藏
得分:0 
回复 4楼 吹水佬
谢谢大佬
2017-11-27 21:39
快速回复:一个关于串赋值的错误...
数据加载中...
 
   



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

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