7

プログラムにない場所から発生しているように見える奇妙なセグメンテーション違反が発生しています...とにかく明示的にではありません。2つの配列で「strcmp」と呼んでいます...両方の配列は同じタイプの構造体に格納されています。ドット表記で1つ、「->」で間接参照することで1つになります。

int name = strcmp(one.name, two->name);

正常にコンパイルされますが、実行するとセグメンテーション違反が発生します。GDBで追跡しようとしましたが、発生するはずの直前にブレークポイントを設定すると、とにかくセグメンテーション違反が発生します。私が得ている:

Program received signal SIGSEGV, Segmentation fault.
__strcmp_ia32 () at ../sysdeps/i386/i686/multiarch/../strcmp.S:40
40  ../sysdeps/i386/i686/multiarch/../strcmp.S: No such file or directory.
    in ../sysdeps/i386/i686/multiarch/../strcmp.S

FML。提案?ありがとう!

4

1 に答える 1

5

私の提案:-gを使用してコンパイルし、valgrindを実行します。

于 2012-05-17T02:50:21.060 に答える