在循环中多次调用dgesv_时内存泄漏(?)

时间:2017-09-01 16:05:55

标签: swift memory-leaks accelerate-framework

我试图通过使用Swift的Accelerate框架来解决一组方程。我遇到了内存(泄漏)问题。 返回的结果没问题。但是,一旦我在dgesv_函数周围循环,应用程序崩溃。

这个简单的例子已经证明了这个问题。在游乐场中运行它,没有循环(没有问题),循环(问题)可以自己查看。

我正在使用其他加速功能而没有任何问题,所以我看不出这个有什么特别之处。

for _ in 0...5
{
var count : Int32 = 3
var info : Int32 = 0
var pivot : [Int32] = []

//example problem from Wikipedia
//var a : [Double] = [3,    2.0,    -1.0,
//                    2,    -2.0, 4.0,
//                    -1,   0.5, -1.0]

//tranposed matrix is required
var a : [Double] = [3,  2.0,    -1.0,
                    2,  -2.0, 0.5,
                    -1, 4, -1.0] //A (left-hand side)

var output : [Double] = [1,-2,0] //b (right-hand side)

dgesv_(&count,
       &count,
       &a,
       &count,
       &pivot,
       &output,
       &count,
       &info)

    print(output) //expected: 1, -2, -2
}

0 个答案:

没有答案