objective-c - 不同文件中的字符串文字是否具有相同的内存地址?

标签 objective-c c memory constants string-literals

我正在使用 objc_[sg]etAssociatedObject(),此函数使用内存地址作为键。如果我传递相同的字符串文字 - 例如"UIImageForTexture" - 从两个不同的文件进入函数,两个字符串文字是否具有:

  1. 相同的内存地址?
  2. 不同的内存地址?
  3. 这取决于其他一些因素。
  4. 它是未定义的。

我可以通过将文字粘贴在文件中的某处并通过 extern 引用它来更明确地做到这一点,但我想知道我是否可以避免这样做。

最佳答案

这将是 C99 标准草案 6.4.5 String literals 段落 6 中的实现定义行为:

It is unspecified whether these arrays are distinct provided their elements have the appropriate values. If the program attempts to modify such an array, the behavior is undefined.

关于objective-c - 不同文件中的字符串文字是否具有相同的内存地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19505310/

相关文章:

objective-c - iOS/Objective-C : library to connect to POP3

ios - 由具有 UITableViewAutomaticDimension 的 FetchedResultsController 提供支持的 UITableView - 重新加载表格时单元格移动

c - Mac OS X 中的多线程

c++ - C++ 中的多线程内存分析

java - 如何减少 Apache CXF 客户端 stub 对象的内存大小?

iphone - 使用淡入淡出动画重绘 UIView?

将二维数组传递给函数的正确方法

c++ - 等号是否在 char * 中重新分配内存?

ios - CGBitmapContextCreateImage 内存泄漏

ios - objective c 安全头文件