セグメンテーション違反とは
こんばんは。ATUOSです。
大学のとある講義でC言語やってるんですが、ほんとに難しい。
毎週頭をひねりながら、プログラミング上達のため頑張ってます。
まだひよっこなので上手く説明はできませんが、知らない人のために少し書くと...
C言語というのはプログラミング言語の1つで、その中でもハードウェアに寄り添った種類のものです。ハードウェアというのは、皆さんがこのブログをよむために使っているスマホやPCなどのデバイス、大まかには『機械本体』だと思ってください。
その機械本体に埋められている記憶装置:「メモリ」には記憶上限があるわけです。我々人間も無限に情報を脳に格納できませんよね。プログラマーはそのデバイスの限界を考えて(思いやって)、それに優しいプログラムを組む必要があるんです。特にC言語はそれが顕著に影響するものなんです。
それが、ひよっ子この僕にとっては非常に難しい。
実行するプログラムが、使ってはいけない( or 使えるはずがない)メモリを使おうとした時に起こるエラーを何と呼ぶか、ご存じですか?
それは、『セグメンテーション違反』です。
まだまだ勉強不足なので正しい名前の由来を答える事が出来ませんが、
セグメンテーション違反が起きた時に、こんなエラーメッセージが出るんです。
『segmentation fault (core dumped)』
和訳すると”セグメンテーション違反(コアダンプ)”です。ど直球過ぎて説明になってませんね。
兎に角今は、このメッセージから来たものだと解釈してます。
先週と今週の課題は、それのせいでかなり苦戦しました(笑)何とか正常に実行でき、無事提出までこぎつけたんですがね。まぁ、それは表面上の話で、実は裏ではとんでもなく膨大な量の計算が実行されていた、なんてこともあるのでC言語は本当に怖い。
そんなこんなで、この2週間は(プログラミングだけではないですが)何とか頑張って乗り切る事ができました!!
セグメンテーション違反って、メモリの不正使用が主な原因らしいので、それさえ気を付ければとりあえずは何とかなるっしょ👍
という事で来週も頑張っていきます。まだ金曜日が残ってるんだけどね(笑)
ではまた来週!
ー(完)ー
0コメント