[NSDate distantPant]返回的错误指针

时间:2013-06-06 09:24:58

标签: objective-c cocoa

为什么这个程序:

#include <stdio.h>
#include <Foundation/NSDate.h>
int main() {
    printf("%p\n", [NSDate distantPast]);
    return 0;
}

在64位计算机上返回一个坏指针? (在我的情况下为0xc22d63c8c500000d)

1 个答案:

答案 0 :(得分:4)

它是一个标记指针 - 它们具有最低有效位设置,其他位包含类型和值。它们为某些类型提供了紧凑的表示,避免了内存分配。有关详细信息,请参阅Mike Ash's blog article