内存访问冲突产生条件

案例一

不存在访问冲突

func increment(_ num: inout Int) -> Int {
    num + 1
}
var step = 1
step = increment(&step)

存在访问冲突

var step = 1
func increment(_ num: inout Int) {
    num += step
}
increment(&step)

报错

如何解决

var step = 1
var copyOfStep = 1
func increment(_ num: inout Int) {
    num += step
}
increment(&copyOfStep)

案例二

案例三

tulpe是一块结构体内存内存,所以修改内部的数据也会报错