这是一个后果SE-0176强制到存储器的专有访问,这是在实施斯威夫特4:
本__m,__n以及__lda的参数dgetrf_()有型
UnsafeMutablePointer<>,即使所指向的变量不发生突变(但是编译器不知道!并且您将同一变量的地址传递nc给它们中的所有三个.
有两种可能的解决方案:附加变量副本:
var nc1 = nc, nc2 = nc
dgetrf_(&nc, &nc1, &matrix, &nc2, &ipiv, &info)
Run Code Online (Sandbox Code Playgroud)
或者withUnsafeMutablePointer,因为不安全的指针不使用任何主动执行:
withUnsafeMutablePointer(to: &nc) {
dgetrf_($0, $0, &matrix, $0, &ipiv, &info)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1007 次 |
| 最近记录: |