由于未分配内存的指针导致段错误
生活随笔
收集整理的這篇文章主要介紹了
由于未分配内存的指针导致段错误
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼如下
#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 *));就可以了
總結
以上是生活随笔為你收集整理的由于未分配内存的指针导致段错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入 char * ,char ** ,
- 下一篇: 字符串常量到底存放在哪个存储区