Linux C-完美解決segmentation fault (core dumped)

在Linux下進(jìn)行C語(yǔ)言編程時(shí),遇到一個(gè)錯(cuò)誤,網(wǎng)上說的都很復(fù)雜,看都看不懂,其實(shí)就是你對(duì)指針進(jìn)行直接操作之前,沒有對(duì)它進(jìn)行分配地址空間。
所以在運(yùn)行的時(shí)候,它不知道在那里操作(比如賦值,取值),所以才報(bào)了這個(gè)錯(cuò)誤。

在C語(yǔ)言中,定義一個(gè)指針變量時(shí),系統(tǒng)不會(huì)像在定義基本數(shù)據(jù)類型一樣自動(dòng)為指針分配地址空間的,所以我們?cè)诙x指針變量時(shí)要手動(dòng)為它分配一個(gè)地址空間

image.png

出錯(cuò)代碼

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define OVERFLOW 0
#define OK  1
#define LIST_INIT_SIZE  100
#define LISTINCREMENY  10
typedef struct{
    char no[20];       //學(xué)號(hào)
    char name[20];    //姓名
    char sex[5];    //性別
    int age;          //年齡
}student;

int main()
{
    student* stu=NULL;
    stu->age=18;
    strcpy(stu->name,"李四");
    strcpy(stu->no,"20144834638");
    strcpy(stu->sex,"男");

    printf("name:%s, no: %s, sex: %s, age: %d",stu->name,stu->no,stu->sex,stu->age);
    free(stu);

    return 0;
}

解決辦法:
為指針變量分配一個(gè)地址空間,完美解決。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define OVERFLOW 0
#define OK  1
#define LIST_INIT_SIZE  100
#define LISTINCREMENY  10
typedef struct{
    char no[20];       //學(xué)號(hào)
    char name[20];    //姓名
    char sex[5];    //性別
    int age;          //年齡
}student;

int main()
{
    student* stu=NULL;
    stu=(student *)malloc(LIST_INIT_SIZE*sizeof(student));  //為指針變量分配地址空間
    stu->age=18;
    strcpy(stu->name,"李四");
    strcpy(stu->no,"20144834638");
    strcpy(stu->sex,"男");

    printf("name:%s, no: %s, sex: %s, age: %d",stu->name,stu->no,stu->sex,stu->age);
    free(stu);

    return 0;
}

運(yùn)行結(jié)果:已經(jīng)可以正常操作指針了


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 指針是C語(yǔ)言中廣泛使用的一種數(shù)據(jù)類型。 運(yùn)用指針編程是C語(yǔ)言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,615評(píng)論 3 44
  • 一、溫故而知新 1. 內(nèi)存不夠怎么辦 內(nèi)存簡(jiǎn)單分配策略的問題地址空間不隔離內(nèi)存使用效率低程序運(yùn)行的地址不確定 關(guān)于...
    SeanCST閱讀 8,134評(píng)論 0 27
  • 十首法語(yǔ)歌精選 四年法語(yǔ)學(xué)習(xí),看了不少法劇法國(guó)電影,聽了不少法語(yǔ)歌 今天給大家小小推薦幾首,不知道能不能放蝦米的鏈...
    沙拉超人閱讀 3,270評(píng)論 0 7
  • 海芬/文 和絢的春風(fēng) 親吻著徒步者笑容 在明媚的春光里流動(dòng) 綿延的鄉(xiāng)間小路 溢出了踢踏舞的樂章 魚塘被藍(lán)天白云鋪滿...
    海語(yǔ)天籟閱讀 545評(píng)論 0 8
  • 前段時(shí)間,因?yàn)樽约旱脑?,反?fù)出現(xiàn)情緒失控,而被折磨的人就是自己的父母。
    愛恰甜酒的橙子閱讀 100評(píng)論 0 0

友情鏈接更多精彩內(nèi)容