由于未分配内存的指针导致段错误

举报
chenyu 发表于 2021/07/27 00:54:22 2021/07/27
【摘要】 代码如下 #include<iostream>using namespace std; void f(char **s) { *s = "chenyu";} typedef struct _node { int val; struct _node *next;} Node; typedef struct _link { Node *front; Node ...

代码如下


  
  1. #include<iostream>
  2. using namespace std;
  3. void f(char **s) {
  4. *s = "chenyu";
  5. }
  6. typedef struct _node {
  7. int val;
  8. struct _node *next;
  9. } Node;
  10. typedef struct _link {
  11. Node *front;
  12. Node *rear;
  13. } Link;
  14. void queue(Link *link) {
  15. // link.front = link.rear = NULL; //这个地方不是.而是-> 请注意
  16. link->front = link->rear = NULL;
  17. }
  18. int main() {
  19. cout<<1<<endl;
  20. char *s;
  21. char **a;
  22. a = (char **)malloc(sizeof(char **));
  23. *a = "chenyu";
  24. f(&s);
  25. cout<<s<<endl;
  26. cout<<*s<<endl;
  27. cout<<*a<<endl;
  28. char *b = {"hello"};
  29. printf("%p\n",b);
  30. printf("%s\n",b);
  31. cout<<*b<<endl;
  32. Link *link;
  33. // link = (Link *)malloc(sizeof(Link *));
  34. queue(link);
  35. return 0;
  36. }

然后运行就出问题了


然后加上

 link = (Link *)malloc(sizeof(Link *));
 


文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/52588780

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。