函数运行总是出现“段错误”

boviecly 2013-08-01 06:33:45
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int
main()
{
char *ch;
char s[120]= "ok/hello:hello,let you Go ahead";
strcpy(ch,s);
printf("%s\n",ch);
char *pt;
memset(pt,0,sizeof(pt));
pt = strsep(&ch,":");
printf("%s\n",pt);
return 0;
}
//运行结果想得到ok/hello
...全文
274 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
boviecly 2013-08-03
  • 打赏
  • 举报
回复
谢谢#6.看样子自己能力还要加强啊、。
awsqsh 2013-08-01
  • 打赏
  • 举报
回复
段错误 大多数都是操作了空指针。
max_min_ 2013-08-01
  • 打赏
  • 举报
回复
好吧! 我看错了!没清楚下面那个函数是分割字符串的函数!
酱油小龟 2013-08-01
  • 打赏
  • 举报
回复
改好了

#include <string.h>
#include <stdio.h>

int main (void)
{
    char s[120]= "ok/hello:hello,let you Go ahead";
    char* ch = s;
    printf("%s\n",ch);
    char *pt;
    pt = strsep(&ch,":");
    printf("%s\n",pt);
    return 0;
}
boviecly 2013-08-01
  • 打赏
  • 举报
回复
#3楼的修改,运行不了。还是有错误。 同时如果用malloc函数,一定要用free释放内存空间。
大尾巴猫 2013-08-01
  • 打赏
  • 举报
回复
引用 2 楼 boviecly 的回复:
求,修改后,能实现我需要的功能。
改不了,c不熟悉,编译器说 strsep 找不到
max_min_ 2013-08-01
  • 打赏
  • 举报
回复

 char *ch;
 char s[120]= "ok/hello:hello,let you Go ahead"
 ch = (char*) malloc(120);
 strcpy(ch,s);
 printf("%s\n",ch);
    char *pt;
    pt = (char*) malloc(120);
    memset(pt,0,120);
    pt = strsep(&ch,":");
    printf("%s\n",pt);
    return 0;
boviecly 2013-08-01
  • 打赏
  • 举报
回复
求,修改后,能实现我需要的功能。
大尾巴猫 2013-08-01
  • 打赏
  • 举报
回复
strcpy(ch,s); ch还没分配内存

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧