ios - 使用指针的简单函数会导致内存错误

标签 ios objective-c c pointers

我的代码是 Objective-C 和 C 的混合体。我简化了下面的代码,但它仍然产生相同的错误。在 Objective-C 文件中:

CGFloat r,g,b = 0.5;
CGFloat x,y,z = 0.0;

foo(r, g, b , &x, &y, &z);

以及 C 部分(导入的 C 文件):

void foo(CGFloat R, CGFloat G, CGFloat B, CGFloat *X, CGFloat *Y, CGFloat *Z) {

    *X = 5;
    *Y = 5;
    *Z = 5;

}


当分配给其中一个指针中的内容时会发生错误 - 它显示 EXS_BAD_ACCESS。我错过了什么(或者没有正确理解?)。我假设在同一个项目中拥有单独的 .c 和 .m 文件是可以的......无论如何它似乎构建得很好。

最佳答案

在我的 c 源文件的 header 中,有一些流氓行将 CGFloat 声明为 double。删除并用 float 替换我的 C 文件中的所有 CGFloat。

关于ios - 使用指针的简单函数会导致内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22676202/

相关文章:

ios - 异常 : Could not load NIB in bundle

objective-c - 动态更改 Windows 根目录,Swift

c - 为什么快速平方根反比使用十六进制?

ios - Amazon S3 政策只允许上传不覆盖

ios - 为什么使用 POST 参数的这个成功的 Swift 异步调用没有返回预期的内容

ios - 启用 ARC 时应用程序在 addsubview 上崩溃

iOS 使用沙盒帐户管理我的订阅

ios - 倒计时错误(NSDate 和 Objective-C)

c - 如何通过 xcb RandR 扩展获得 RandR 输出的分辨率?

c - 如何在 C 中不使用零填充截断 FAT32 文件系统中的文件?