No.2ベストアンサー
- 回答日時:
こんにちわ。
「セグメントエラー」ってSegmentation Fault の事ですよね。
そうであれば、メモリのアクセス侵害です。
原因としては、
・アクセスできない筈のアドレス (NULL アドレスとか) にアクセスした
・獲得したアドレスを越えてアクセスした。
・初期化していないポインタ変数を使ってアクセスした。
と言う感じです。
ケースとしては少ないと思いますが、1つの変数 (領域) を複数の
データ型でアクセスした場合に、起きる事があります。
No.3
- 回答日時:
ソースを見ていないのではっきりしたことはいえませんが、
コーディング時に気を付けることは、使用する変数は「必ず初期化を行う」を習慣づけることです。
ポインタや配列などは怠りがちになってしまいますが是非やってください。
NULLクリアしてあげるだけでもかなり違うと思います。
現在のOSは皆マルチタスクですからC言語の場合メモリ管理はプログラマがしっかりやらねばなりません。
No.4
- 回答日時:
No1、No2の方が書いておられるように、原因は様々ですが、
ひとつ例をあげると、
char a[5];
char b[10]; と領域を定義して、
strcpy( a, b ); と記述した場合、構文は問題ありませんよね。
コンパイルエラーは出ません。
でもいざ実行した時、bの値が"abcd"であれば問題ありませんが、
"abcdefgh"だったらaの領域をオーバーしてしまいます。
こういう場合に、そういうエラーが起こる場合があります。
メモリ領域は実行時に割り当てられる為、
aの領域の後ろがたまたま書き込んではいけないようになっている場合は
エラーが出ますし、書き込み可能の領域が割り振られている場合は、
何か別のデータを壊して上書きしてしまいます。
また、本を見られたようですが、この辺のことは言語というよりは、
OSの本のメモリ管理の説明のところに載っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# エラー: ‘inval’ の記憶サイズが不明です。 union semun inival; というエ 2 2023/01/16 22:04
- FX・外国為替取引 MQL5にて謎のエラーが発生!だれか対処を教えてください! 1 2023/03/25 15:59
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- C言語・C++・C# プログラム Arduino 1 2022/07/03 11:13
- PHP preg_matchで Warning: Undefined variableが出ます 1 2022/11/15 17:06
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Excel(エクセル) この関数の誤りを教えて下さい。 3 2023/08/08 07:36
- Excel(エクセル) この関数の間違いを教えて下さい 2 2023/08/07 22:40
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
C言語でセグメンテーションエラーの原因がわからず困っています。
C言語・C++・C#
-
C言語のプログラムが実行できません。
C言語・C++・C#
-
C言語初心者の質問失礼します。
C言語・C++・C#
-
-
4
C言語のポインターに関する警告
C言語・C++・C#
-
5
C言語 exitの使い方
C言語・C++・C#
-
6
C言語 配列の長さの上限
C言語・C++・C#
-
7
3行3列の行列の和と積の計算方法を教えて下さい。
数学
-
8
C言語 エラーの原因がわからないので,見てほしいです
C言語・C++・C#
-
9
因数分解を行うプログラムについて
C言語・C++・C#
-
10
Pro*Cの構文エラー
その他(プログラミング・Web制作)
-
11
「照合パターンに合いません」の回避法
UNIX・Linux
-
12
課題でつまってます・・・
C言語・C++・C#
-
13
エラー 添字が付けられた値が、配列、ポインタまたはベクトルではありません。 とでてしまいます。原因が
C言語・C++・C#
-
14
雨滴の運動質量が変化する落体の運動で次の問題の式の解き方がわかりません。はじめ静止していた質量
物理学
-
15
バッファとは何ですか
C言語・C++・C#
-
16
c++ セグメントエラー
C言語・C++・C#
-
17
プログラムについての質問です。 fflush(stdout)はいったいどのような時に使われているので
C言語・C++・C#
-
18
数字列を3桁ごとにカンマで区切る方法
C言語・C++・C#
-
19
cshでエラー出力を出さないようにしたい
UNIX・Linux
-
20
<math.h>があるのにsqrtが・・・
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セグメントエラー
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
アプリを32bitから64bit移行
-
DLL<->VB間での受け渡し(文字...
-
C言語のポインタに直接アドレス...
-
LPSTR型の初期化について
-
参照型で受け取った引数をポイ...
-
戻り値で構造体を返すことは可...
-
構造体とfscanf
-
fopne で失敗する原因
-
NASMかNASKの文法の本
-
関数ポインタの高速化のメリット
-
自作関数の引数
-
Cで作成したDLL関数をVBから呼...
-
popenした子プロセスのプロセス...
-
#define NULL ((void *)0) の弊害
-
C言語のプログラムをJavaに...
-
visual studioのエラーについて
-
x64プログラムでアドレスが32bi...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セグメントエラー
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
戻り値で構造体を返すことは可...
-
fopne で失敗する原因
-
C言語の関数と配列に関する質問
-
Run-Time Check Failure #3とい...
-
LPSTR型の初期化について
-
ExcelVBAでのkernel32(64bit)
-
main(int argc,char **argv[])...
-
アプリを32bitから64bit移行
-
ハンドルはポインタか
-
連結リスト 要素の入れ替え
-
C言語でのconstを返す関数
-
Cで作成したDLL関数をVBから呼...
-
NULLとブランクの違い
-
エラーの意味
-
ハンドル、アドレス、ポインタ...
-
DLL<->VB間での受け渡し(文字...
-
【C言語】戻り値が構造体の関数
おすすめ情報