usaginenetyann
@usaginenetyann (Io [イオ])

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

ファイルの列挙

Q&A

Closed

[開発環境]
visual studio 2019
[問題のコード]
static std::vector<std::string> all_search(fs::path s = ".") {
using namespace std::filesystem;
std::vector<std::string> files;
const directory_iterator end;
try {
directory_iterator it(s);
for (; it != end;++it) {
const directory_entry itc = *it;
files.push_back(itc.path().string());
}
}
catch (std::exception e) {}
return files;
}
[デバッグエラー内容]
0xC0000005: 場所 0x0000000000000000 の読み取り中にアクセス違反が発生しました。

ファイルの名前をvectorに格納してそれを引数として
渡したかったのですがエラーが出すぎてもうわかりません、、、
できれば丁寧に教えてください、、、

0

1Answer

問題なく動いたので別の部分が原因だと思います

そもそも問題が起こってもすべて無視しているのでエラーが出てもわからないと思います

catch (std::exception e) {} // すべて無視
catch (std::exception& e) {
    std::cout << e.what() << std::endl; // エラー内容を表示
}
0Like

Comments

  1. @usaginenetyann

    Questioner

    でもまずexceptionすら発生してなくて
    最後がコード-で終わってるので、、キャッチできないです、、、
  2. 質問文に書かれていない部分に問題がないとは思っていません

    たとえばリンク設定がおかしいとか存在しないものを呼んでるとか配列の範囲外にアクセスしてるとか

    前者2つはそもそも catch できないかもしれません
  3. @usaginenetyann

    Questioner

    ありがとうございます!
    じつははあの後調べてみたら
    javaの癖が出てたようで、、
    std::string var = NULL;
    てやっていたみたいで、、、
    そのせいでNULLの場所を開いて変な風に
    なっていたっぽいです、、
    ほんとにすいません、、、、

Your answer might help someone💌