问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言 字符串指针问题1

发布网友 发布时间:2023-10-27 14:35

我来回答

2个回答

热心网友 时间:2024-12-03 12:52

char data_1[50];
scanf("%s",data_1);
这个变量是在函数内部定义的,是个局部变量,函数运行结束以后,这个变量的内存被释放了。
你让你的指针指向被释放的内存,所以输出时乱码
你可以用malloc动态分配,这样的内存要自己手动释放才可以

热心网友 时间:2024-12-03 12:52

对上面说没有错误,但是还有一点没有说
说是在插入结点的时候,你的方法不对,Create_LinkList_1()中While循环里还改为
while(strcmp(data_1,"-1"))
{
Node_1=(struct Node *)malloc(sizeof(struct Node));
Node_1->data=data_1;
Node_1->Next=NULL;
if(H->Next == NULL)
{
H->Next = Node_1;
}
else
{
Node_1->Next=H->Next;
H->Next=Node_1;
}
scanf("%s",data_1);
}

我用VS调了一下:
你看一下结果
#include<stdio.h>
#include <malloc.h>
#include<string.h>

struct Node
{
char *data; //数据域为字符串
struct Node *Next; //指针域
};

// 在链表的头部插入节点建立链表
struct Node * Create_LinkList_1()
{
struct Node * Node_1;
struct Node * H;
H = NULL;
Node_1 =(struct Node *)malloc(sizeof(struct Node));
Node_1->data = (char *)malloc(50);
scanf("%s",Node_1->data);
Node_1->Next = NULL;
while(strcmp(Node_1->data,"-1"))
{
Node_1->Next=NULL;
if(H == NULL)
{
H = Node_1;
}
else
{
Node_1->Next = H;
H = Node_1;
}
Node_1 =(struct Node *)malloc(sizeof(struct Node));
Node_1->data = (char *)malloc(50);
scanf("%s",Node_1->data);
Node_1->Next = NULL;
}
return H;
}

//在链表尾部插入节点建立链表
// struct Node * Create_LinkList2()
// {
// struct Node * Node_1, *Node_tail;
// char data_1[50];
// struct Node * H=(struct Node *)malloc(sizeof(struct Node));
// H->Next=NULL;
// Node_tail = NULL;
// scanf("%s",data_1);
// while(data_1!="-1")
// {
// Node_1=(struct Node *)malloc(sizeof(struct Node));
// Node_1->data=data_1;
// Node_1->Next=Node_tail->Next;
// Node_tail->Next=Node_1;
// Node_tail = Node_1;
// scanf("%s",data_1);
// }
//
// return H;
// }

//打印函数
void Print_LinkList(struct Node * L)
{
while(L!=NULL)
{
printf("%s",L->data); //
L=L->Next;
}
}

//主函数
void main()
{
Print_LinkList(Create_LinkList_1());
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
“笑指旧山归路长”的出处是哪里 PCB为什么要拼板,PCB拼板打样有哪些好处? 绘制紫外吸收光谱时,我发现最大吸收波长是333nm,此时吸光度为4.01 对吸光度测量值有何影响? 陆垚知马俐的歌词是什么? 玫瑰花水中的养殖方法 陈年柚子茶如何做 陈年柚子茶的制作方法 在答题卡上改题号是指那一道题扣分还是整个卷子都没? ...考试时我写到了卷子上,会怎么样?会不会按抄袭 高考时在卷子上不小心画了道怎么办? 蔡国庆儿子庆庆长大了,样貌清秀多才多艺,是基因太强大了吗?_百度知 ... 蔡国庆圈养儿子的模式,现如今儿子怎么样了? 我要徒步游阳朔,求大神指点路线和景点,首次去阳朔,介绍详细一些!!!万... 支付宝无法支付 公众号怎么赚钱?5756 特百惠油壶盖子有配的吗1 PPT中插入的图片,如何把图片背景变透明?898 舞蹈艺术的审美特征有哪些8 用饿,安静,厚,盼望,喜欢五个词语写夸张句?24 馒头是谁发明的真是诸葛亮发明的么6 边长为一分米的正方形的面积是多少平方厘米边长,为多少分米的正方形的... 我们现在吃的馒头真的是诸葛亮发明的吗?2 怎么处理鸡粪便做饲料喂鱼吃对鱼有害吗2 怎么把微信图片弄到手机QQ上241 怎么把QQ上的图片放在一个压缩包然后发过去给好友45 新注册的微信几天后可以改? qq好友头像为什么出现在手机屏幕上呢,怎么去掉啊?9 平湖平湖中南君悦府在哪里? 求资源!动漫特务搜查官1~4有字幕的~~ 你的文具盒里有多少支钢笔?11支。英文35 半永久化妆学费多少钱2 乡村爱情10一共多少3 对方把我微信拉黑 然后对方注销 发给对方信息有什么提示? 请问鸡粪可以直接喂鱼吗?111 馒头是诸葛亮发明的吗7 机场城市中文版破解版 我的世界空岛服怎么刷泥土?169 北京东城区有头发种植医院吗,植发效果好的?5 小便色黄,有点味道,有时感觉腰酸背疼,只要喝水就变浅是怎么回...1 我想去云南大理,骑行去,从湘潭到云南骑行怎么去。求大神帮忙指点... 怎么强制修改第二次 为啥我的别人搜不到!!!显示不存在???怎么回事 对方的微信注销了还能给他发消息吗,对方注销了给对方发消息会显示... 怎么用一个手机登两个? 对方注销了发消息给他会怎样 干鸡粪能不能直接喂鱼2 QQ空间的模块怎吗安装啊?3 触字用部首查字法查字典时,先查什么部,再查几画 如果殃不会读,就用字典查子法,先查什么部,再查几画,它的读音... 一个手机号怎么申请第二个