質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
char

charは文字データ型を指します。一文字分の文字コードの格納を想定としている型です。

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

ポインタ

ポインタはアドレスを用いてメモリに格納された値を"参照する"変数です。

Q&A

解決済

1回答

906閲覧

C言語 charへ値の格納ができないエラー EXC_BAD_ACCESSについて

Kchan_01

総合スコア110

char

charは文字データ型を指します。一文字分の文字コードの格納を想定としている型です。

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

ポインタ

ポインタはアドレスを用いてメモリに格納された値を"参照する"変数です。

0グッド

0クリップ

投稿2020/03/02 08:35

編集2020/03/02 08:36

下記のプログラムですが変数stだけが値の格納ができません。
画像のエラーが出ます。変数nameには格納できます。
やっていることは同じなのに何が起きているのでしょうか。

たまたま確保した領域にすでに値が入っていて出来ないのかと考えNULLを格納し初期化?してみましたが同じエラーが出ました。理由がわかる方教えていただけましたら幸いです。

c

1 2int main(void) 3{ 4 char *name; 5 name[0] = 'a'; 6 7 char *st; 8 st[0] = 'a'; 9 10 return 0; 11} 12

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

nameの側もダメです.
name側で止まらなかったのはたまたまでしょう.

「nameとかstが指すメモリ領域って一体どこなんでしょう?」というのを考えてみると良いかと思います.

最近,似たような間違いの話があったので,参照すると良いかと思います.

投稿2020/03/02 08:45

編集2020/03/02 08:50
fana

総合スコア11996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kchan_01

2020/03/02 08:51

ポインタのみで、メモリを確保していないので、エラーが起きているということですね。 理解できました。ありがとうございます。
fana

2020/03/02 08:56 編集

現象: 初期化されてないポインタ型変数(nameとst):変数値がどんな値になってるかは不明. →そこをアクセスしようとした:たまたま入ってた謎の値がアドレスと解釈され,その先に値をぶち込もうとする →怒られてその場で止まることもあれば,そうならないこともある.
Kchan_01

2020/03/02 08:57

宣言されたアドレスの初期値も考慮しないとダメなんですね。宣言した時点で、任意のアドレスが割り当てられるのかと思っていました。
fana

2020/03/02 08:58

対策: 何をしたいのかに依るけども,例えば char name[10] = { 0 }; とか.
fana

2020/03/02 08:59

char Buffer[10]; //サイズ10のバッファがあって char *name = Buffer; //nameはBufferの先頭を指す name[0] = 'a'; //結果としてBuffer[0]に'a'が入る みたく書くとか.
Kchan_01

2020/03/02 09:01

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問