由于未分配内存的指针导致段错误
来源:互联网 发布:缺血半暗带的算法 编辑:程序博客网 时间:2024/04/29 16:16
代码如下
#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 *rear;} Link;void queue(Link *link) {//link.front = link.rear = NULL; //这个地方不是.而是-> 请注意link->front = link->rear = NULL;}int main() { cout<<1<<endl; char *s; char **a; a = (char **)malloc(sizeof(char **)); *a = "chenyu"; f(&s); cout<<s<<endl; cout<<*s<<endl; cout<<*a<<endl; char *b = {"hello"}; printf("%p\n",b); printf("%s\n",b); cout<<*b<<endl; Link *link; // link = (Link *)malloc(sizeof(Link *)); queue(link); return 0;}
编译没错
然后运行就出问题了
然后加上
link = (Link *)malloc(sizeof(Link *));
就可以了
0 0
- 由于未分配内存的指针导致段错误
- 由于未修改主机名导致的yarn框架错误
- tensorflow由于未初始化变量所导致的错误
- 给结构体指针分配内存后依然出现段错误的解决
- 指针未被分配内存
- 由于内存字节对齐导致的硬件错误
- 指针未释放导致内存泄漏的坑
- 从一个简单程序的GDB调试看段错误,指针的初始化及内存分配(malloc/free)
- 从一个简单程序的GDB调试看段错误,指针的初始化及内存分配(malloc/free)
- C语言的内存分配和段错误的处理
- c语言中较常见的由内存分配引起的错误_内存越界_内存未初始化_内存太小_结构体隐含指针
- c语言中较常见的由内存分配引起的错误_内存越界_内存未初始化_内存太小_结构体隐含指针
- 由于JDK版本问题导致的错误
- 捕获由于无效指针导致的内存读写异常,最后导致进程异常中止(仅适用于Windows系统)
- C指针一个简单的小错误(1)-内存分配
- 一个多线程问题引发的血案-(代码段执行完毕,子进程未执行完毕导致段错误)
- 指针定义时未明确内存区域导致的内存溢出
- 由于未能找到 id 为“ctl19”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误。
- 三种快排及四种优化方式
- U3D Resources & AssetBundle内存管理总结
- second day for javascript
- 20 ViewPager Demo3指示器
- 安卓小结.TextUtils.isEmpty
- 由于未分配内存的指针导致段错误
- tcp/ip学习心得(3)
- LA2678 Subsequence 时间优化
- Cpp环境【NOIP2010提高组】【Vijos1777】【Code[VS]1066】【CQYZOJ1793】引水入城
- 如何在onitemclick获取ListView的item
- Windows下MySQL远程连接数据库(Workbench版本)
- 【NOIP2010提高组】引水入城
- 设计模式——状态模式(C++)
- 某个服务的调用顺序