网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月04日漏签0天
c语言吧 关注:798,835贴子:4,357,326
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 11回复贴,共1页
<<返回c语言吧
>0< 加载中...

求助 这个代码运行粗来为什么是

  • 只看楼主
  • 收藏

  • 回复
  • LX苏
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
求助 这个代码运行粗来为什么是null pointer assignment 啊


  • LX苏
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <stdio.h>
#include <string.h>
char del(char *str, char *ch);
void main()
{
char *str, *ch,*str_after;
printf("Please input the words:\n");
gets(str);
printf("Pleased input a word:\n");
gets(ch);
*str_after=del(str,ch);
printf("The delete is:\n");
puts(str_after);
}
char del(char *str, char *ch)
{
int len1=strlen(str),len2=strlen(ch);
int i,j,pos;
char *p;
while(1)
{
p=strstr(str,ch);
if(p==NULL) break;
else
{
pos=p-str;
for(i=pos;i<len1-len2;i++)
{
*(str+i)=*(str+i+len2);
}
*(str+len1-len2)='\0';
}
//else break;
}
return *str;
}


2025-07-04 11:24:26
广告
  • LX苏
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • zczqwd
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
指针没有指向内存,野指针。


  • LX苏
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我后来把自定义函数改成了void 后来运行出来也是对的 但是多了一行null pointer assignment 都运行出来了为什么还会有啊


  • 刘高燕520
  • 彩虹面包
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
指针请申请内存


  • 传说氵灭世
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼上说的都对
char* str;
gets(str);
不能这么用,char型指针str没有指向合法内存
定义完str直接使用前应该先申请内存,在gets(str);之前加一句
str=(char*)malloc(sizeof(char));
之后的ch、str_after也一样要申请
预处理加一句#include<stdlib.h>


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 11回复贴,共1页
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示