如何避免Golang中的堆栈溢出?

时间:2019-10-23 10:01:01

标签: go stack-overflow cgo

我在多次导出到dll中调用函数时遇到问题。调用它例如80 000次会导致堆栈溢出。有什么办法可以避免呢?函数调用后可以清除堆栈或堆吗?

//export GetNum
func GetNum(DeviceType uint32, DeviceInd uint32, CANInd uint32) int {
return 0
}

1 个答案:

答案 0 :(得分:4)

  

例如,调用80 000次会导致堆栈溢出。有什么办法可以避免吗?

是,例如称它只有1万次。或者不要使用递归算法或将递归转换为正常循环(尾部调用优化)。

P.S。您的代码未显示任何相关详细信息。