質問: atol(keep[j]); //ここでエラーが発生します。 } return yoso_num; } ``` ソースコードが長くなってしまうので、他の関数は表示していませんが、コメントくだされば適宜追加します。 ### 試したこと ・メモリアクセス違反は宣言外のメモリにアクセスしてしまうこと、と分かったのですが、 宣言し、mallocで確保しているlongnumの0番目でなぜエラーが起こるのかわかりません。 ・int型に変換するためには配列内の要素を1つずつatoiで変換しようと思ったのですがこれはいかがでしょうか? ### ツールのバージョンなど Windows10 64bitでVisual Studio2017を使用しています。 ### 補足情報 文字列配列の扱いで、こちら(知恵袋)も参考にしました。
回答: 文字コード変換とか難しいこと考えなくても、そのまま代入すればいいだけです。 char型というのは**文字型ではありません**。 1バイト幅の整数型です > > longs[j] = atol(keep[j]); //ここでエラーが発生します。 > > > atolという関数は文字列のアドレスを引数に取り、数値変換した結果を返す関数です。 エラーが出るのはアドレスではなく数値データを引数に与えているせいです #質問の意図に合うように追記