2017-11-17 13 views
-3

XCodeでプログラムをコンパイルすると、関数間を渡す変数を指す「スレッド1:EXC_BAD_ACCESS(コード= 1、アドレス= 0x0)」というエラーが発生します。C++でポインタなしの関数間で変数を渡すときのヌルメモリアドレス?

私はこの件に関するスタックオーバーフローについて見たことがありますが、ポインターや参照が関数で不適切に使用され、 "0"のメモリー位置を返すエラーを見ましたが、ポインターや参照を使用していませんグローバルスコープで宣言された変数です。

ここでポインタを使用する方がよいでしょうか?

私のプログラムは、入力の配列を半分に分割して並べて印刷しようとしています。 1つのint関数と2つの文字列関数を使用して、int引数を受け入れて終了します。return 0;

関数間で宣言された変数を関数間で引き渡す際に特に問題がありますか?私はポインタと参照を使用してみましたが、これらは同じメモリアドレスエラーを返します。

EDIT:問題は、文字列として定義された関数のreturn 0;を使用していました。関数型をvoidに変更し、関数を終了するために単にreturn;を使用しました。メモリアクセスの問題はその後修正されました。

+0

@ John3136申し訳ありません。これは、コードを別の例に再現して、単純に物事を試して単純化するというエラーでした。物事を簡単にするなら、私は完全なコードを質問にコピーしました。ご協力ありがとうございました。 –

+0

@RemyLebeau残念ながら、私の入力に別のエラーがあります。元のプログラムの両方の場合、この関数は文字列でした。それは私の悪かった。 –

+1

関数は文字列を返すが、 'return 0'を含んでいます。もちろん、0は文字列ではありません。 –

答えて

0

@RemyLebeauと@BoPerrssonによって提供された正解は、定義された関数タイプに一致する戻り値でした。

関連する問題