PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] 计算两个二维阵列的乘积,但无法释放记
楼主:
yuwenche
(yuwenche)
2023-09-23 09:41:57
底下连结的程式片段是计算两个二维阵列的乘积,此函式会被编译成dll档,供python程
式调用。 目前的情况是能传回正确的乘积值,但因第45行之后未被执行,也就是宣告的
内存空间未被释放,程式跑久就出现内存不足的问题了。请问有没有办法传回正确值
且能释放内存?
https://drive.google.com/file/d/1IdiUiNmFEVAb3AQfoEk3_20MDrDidO2o/view?usp=sharing
作者:
LPH66
(-6.2598534e+18f)
2023-09-23 10:11:00
注意你 40 行已经 return 了return 不只是表示什么是回传值, 更表示程式执行到此为止
作者:
lycantrope
(阿宽)
2023-09-23 14:37:00
不过就算return放在最后一行,这code也是www
作者:
stupid0319
(征女友)
2023-09-23 15:08:00
把结果转成字串,存在固定空间, python 处理字串
作者:
lycantrope
(阿宽)
2023-09-23 15:59:00
直接转成numpy回传就好,转字串不如别用c
作者:
CoNsTaR
((const *))
2023-09-23 23:14:00
不能在 Python 那边 allocate 好再把阵列传进来吗?
楼主:
yuwenche
(yuwenche)
2023-09-26 11:42:00
感谢各位的建议,虽然此题目前仍无解。只好先用纯python来解了,虽然速度上是慢了点。
作者:
lycantrope
(阿宽)
2023-09-26 13:44:00
#1b3a9dxv (C_and_CPP)
,两年前类似问题....
作者: yvb
2023-09-27 18:22:00
楼上, 你贴的是本篇文章代码耶...
作者:
lycantrope
(阿宽)
2023-09-27 22:38:00
我贴错应该是
#1XRgBGl_ (C_and_CPP)
作者:
lc85301
(pomelocandy)
2023-09-28 00:00:00
不一样啦,这次有 python 呀
作者:
tomsawyer
(安安)
2023-09-29 23:46:00
应该妳得拿到pointer后 又再呼叫一个free 的function定义在dll里去释放他
作者:
closer76
(克楼瑟)
2023-09-30 10:50:00
我有个想法:如果你能在 Python 里处理这个被回传的指标那你能不能再写一个 C 的函式,专门做 free(),然后在Python 里呼叫这个函式去释放内存?
作者:
LPH66
(-6.2598534e+18f)
2023-09-30 23:16:00
其实楼上的做法不只是给 python, 它甚至是一般写 DLL 时的做法: 当 DLL 有获取资源的动作时, 一定也有一个释放资源的函数, 这样需求跟释放都会在 DLL 里
楼主:
yuwenche
(yuwenche)
2023-10-03 18:41:00
感谢楼上两位的意见,其实这方法我也试过,只不过程式在执行时发生错误。能把构想程式化吗? 如果对python不熟,就在C语言的main()中调用即可,感谢。
作者:
lycantrope
(阿宽)
2023-10-03 21:58:00
先学写C再去想python,再说有numpy为何不用
继续阅读
[问题] 类别、建构子问题
amamoimi
Re: [问题] BMP资料结构请教
YoursEver
Re: [问题] CreateFile()回传INVALID_HANDLE_VALUE
closer76
Re: [分享] 物件导向 in C
wjungle
[问题] CreateFile()回传INVALID_HANDLE_VALUE
xavier13540
[问题] BMP资料结构请教
IOP14759
[问题] opencv的cuda +cuda 核函数的问题
su27
[问题] QT的mkdir mkpath 为何不是static?
liu2007
[问题] 写一个process来解析bmp图档
gn00618777
Re: [问题] 如何追查可能因MutilThtread下stackover
jasonwu
Links
booklink
Contact Us: admin [ a t ] ucptt.com