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

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

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

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

3272閲覧

エラーの解決方法がわからない c++

kalmia

総合スコア15

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2022/05/27 21:20

terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid
Aborted (core dumped)

c++です。

このようなエラーが出ます。コンパイル(?)はできるのですが、実行しようとするとこのようなエラーが出ます。
自分で調べたところ、stringが問題のようなのでstruct型で宣言していたstringを消して実行してみたところエラーは出ず正常に動きました。しかし、string型を使いたいのでどうにかしたいのですが、行き詰まっています。

struct foo{ int min; string bin; };

このように宣言してあるのですが、なにが間違っているのでしょうか、、、

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

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

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

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

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

hoshi-takanori

2022/05/27 21:34

エラーを再現できるソースを貼りましょう。
thkana

2022/05/27 22:35

C++の、ちょっと込み入ったクラスが絡むエラーが読みにくいのはもう仕方がないですが、 とりあえずstringを処理していく過程でエラーがでているのですから、stringのデータ内容に対して無茶な操作をしていないか見直していくしかないでしょう。他人に手伝わせたいならstringの操作を行っているところを、テストできる状態で一通り示してください。 printfデバッグやデバッグを使ったりして実際にその例外が出る操作を特定できれば、エラー原因に対しての大きなヒントとなるでしょう。
actorbug

2022/05/27 23:33

foo a = {1, NULL}; みたいなことをしているのではないでしょうか。
kalmia

2022/05/28 09:56

朝早くから質問を見ていただいたのに不備がある質問で申し訳ございませんでした。 自分が今やっているのが課題としてやっているものなんですけど、コピー検査をめちゃくちゃすると言われていてあとあとここに貼ったコードのせいでコピー疑惑が掛けられると嫌だったのでソースを張っていませんでした。 問題は自分が色々試した結果thkanaさんのいう通りstringに対する無茶なデータ操作が原因でして、無事うまく動かすことができました。 次からはもっと自分で模索した後にみなさんの力に頼りたいと思っています。その時はもっとわかりやすくソースを貼りたいと思います。すみませんでした。 hoshi-takanoriさん、thkanaさん、actorbugさんコメントありがとうございました。
guest

回答1

0

自己解決

stringに対する無茶なデータ操作が原因でした。

投稿2022/05/28 09:57

kalmia

総合スコア15

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

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

thkana

2022/05/29 11:21

ここに質問した以上は、「どうやって解決したか」をきちんと書いてください。 https://teratail.com/help#resolve-myself なぜなら、ここは「あなたの問題を解決する」だけではなく、「質問と回答を通してお互いに知識や情報を交換・共有する場所」「コンテンツを世の中に残し届ける事を目的としています」( https://teratail.com/help#about-teratail )で、あなたはそれに同意して質問したはずです。解決を共有してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問