推 wtchen: ....我看不太懂說, 為啥純C裡會有new? 不是應該用malloc? 05/31 22:33
推 wtchen: 抱歉我看漏了 05/31 22:37
推 CaptainH: 真有必要把C++改C?很難喔! 05/31 23:38
→ CaptainH: 用extern "C" 包裝一下接口比較好 05/31 23:39
推 descent: 可以用 c++ compile to obj, 再 link obj 05/31 23:49
→ EdisonX: 原本是 struct SupportPattern* m_sps[20] ; 和你後面配 06/01 02:49
→ EdisonX: 置的 20 * sizeof(struct SupportPattern) 有所不同 , 若 06/01 02:50
→ EdisonX: 你是想將 OpenCV 改成純 C 的話... 保重! 06/01 02:53
推 bibo9901: 我真好奇為何你struct 裡 Eigen:: 那行可以通過編譯 06/01 02:54
→ bibo9901: 或許你還是用C++ compiler (?) 這樣的話你到底想做什麼06/01 02:55
推 EdisonX: @bibo9901 , 我猜他沒把副檔名改成 .c ? (vc 編譯器)06/01 02:55
→ EdisonX: 你原本的做法應該是要先配置好 20 個 pointer , 再用每個06/01 02:56
→ EdisonX: pointer 往下配置出實際 SupportPattern.06/01 02:56
→ bibo9901: 對啊 ..連code原本的意思都沒弄清楚06/01 02:56
→ EdisonX: struct SupportPattern ** m_sps;06/01 02:59
→ EdisonX: rand->m_sps=(T**)malloc(20*sizeof(SupportPattern*));06/01 02:59
→ EdisonX: for(i = 0; i < 20 ; ++i)06/01 03:00
→ EdisonX: rand->m_sps[i]=(T*)malloc(sizeof(SupportPattern);06/01 03:00
→ EdisonX: 大概是這樣吧,上面的 T 自己換成 struct name.06/01 03:00
我的確是還是使用C++編譯器,因為要改的程式頗大(對我來說
不敢一口氣將所有的東西改完,所以一點一點改
我會試試看大家提供的方法,感謝大家
然後我是要把OpenCV與Eigen寫成C沒錯...
※ 編輯: startbomb51 (61.218.165.98), 06/01/2016 09:04:38
→ bibo9901: XDD RIP06/01 14:03
→ bibo9901: 期待你用C做出 expressio template06/01 14:05
推 damody: 選對的工具 別創新工具 除非是做興趣的06/01 16:03
按照E大的方法已經可以執行了
只不過我的情形要再利用memset做初始化
或是用calloc代替
感謝大家的幫忙
※ 編輯: startbomb51 (111.82.90.200), 06/03/2016 09:17:43