質問

私は<のhref =「https://rads.stackoverflow.com/amzn/click/com/1430218150」のrel =「nofollowをnoreferrer」タイトル= "学習Objective-で非常に初期の例の1つを介して、次のよMacでC ">マックの上でのObjective-Cを学びます。私のコードはほぼ正確ブック(夫婦スペースと些細な括弧は異なる場合があります)内のコードと同じです。それはこのようになります:

#import <Foundation/Foundation.h>

BOOL areIntsDifferent (int thing1, int thing2) {
    if (thing1 == thing2) {
        return NO;
    }
    else {
        return YES;
    }

}

NSString * boolString (BOOL yesNo) {
    if (yesNo == NO) {
        return (@"NO");
    }
    else {
        return (@"YES");
    }
}


int main (int argc, const char * argv[]) {
    BOOL areTheyDifferent;

    areTheyDifferent = areIntsDifferent(5, 5);
    NSLog(@"are %d and %d different? %@", 5, 5, boolString(areTheyDifferent));

    areTheyDifferent = areIntsDifferent(23, 42);
    NSLog(@"are %d and $d different? %@", 23, 42, boolString(areTheyDifferent));

    return 0;
}
私は、コードを実行すると、

、これは私がコンソールに得るものです。

[Session started at 2009-12-19 01:41:37 -0500.]
GNU gdb 6.3.50-20050815 (Apple version gdb-1346) (Fri Sep 18 20:40:51 UTC 2009)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin".tty /dev/ttys001
Loading program into debugger…
Program loaded.
run
[Switching to process 3125]
Running…
2009-12-19 01:41:38.432 BOOL Party[3125:a0f] are 5 and 5 different? NO
Program received signal:  “EXC_BAD_ACCESS”.
sharedlibrary apply-load-rules all

私はなぜこれが起こっているかわかりません。私はそれは私がそれへの呼び出しをコメントアウトする場合、プログラムは正常に実行されるため、boolString機能とは何かを持っていることを知っています。私の腸は、これが(この本はおよそ6ヶ月のSnow Leopard以前から)Snow Leopardの中にいくつかの新しいメモリ管理のものとは何かを持っていることを私に伝えます。誰もが、問題が何であるか知っていますか?

役に立ちましたか?

解決

あなたは%dのではなく、$ Dをしたいライン30にタイプミスがあります。あなたは、小数点以下第三位のプレースホルダを逃しているので、あなたは%を@に42を渡してしまうと、それは文字列へのポインタだかのようなのNSLogは、間接参照のメモリ位置42にしようと、あなたがクラッシュします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top