[問題] QT 與C++ 新手發問

作者: DirKai (Dirk_AI(MIX))   2017-07-12 11:19:04
開發平台(Platform): (Ex: Win10, Linux, ...)
win7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
QT Creator
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
自己寫的ImgProcess
問題(Question):
利用Class 中的function,去修改Class裡面的陣列,
怎麼改都不會變,fprintf到txt檔都是0。
◎另外的小問題:
(至於為什麼要fprintf成txt來debug...
因為QT createor我不知道要把處理的影像檔,放哪才讀的到。
每次都要圖檔放在debug裡面,compile完再自己去debug資料夾點執行檔,
如果用creator直接按執行,放main.cpp旁邊、放exe旁邊,都讀不到...
為什麼!!!!!!
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
1.
http://ideone.com/1vDmDI
Class 裡面public的: unsingned char img_ori[]、img_dst
void imgProc();
2.
http://ideone.com/TGh5xm
主要看:161~165行,我將陣列全部存成255。
當我UI畫面按下button,執行38行的creatFlist()
而111行,執行 testWidget::imgProc();
114~118將陣列儲存至txt檔
124行 將陣列存成bmp檔
結果不論是圖檔或是txt檔,都為全黑和全0
但假如我將imgProc內執行的東西,移到creatFlist()中
例如我將111行改成
for(int i=0; i<(int)(width*height); i++)
img_dst[i]=(unsigned char)255;
直接執行,不要透過imgProc()這個function去間接執行,
則bmp檔成功變全白、txt也是全為255,
我第一次寫c++使用class,
是不是哪裡沒注意呢?
為什麼在別的function中修改陣列都無法改值
P.S. 我確定imgProc()有被執行到,因為imgProc()一執行
我先讓Label顯示我要的字串,是有顯示的!!!
(以前寫都是C)
拜託各位了,若太混亂,或是不懂我在問甚麼,
請跟我說,我重新整理文章流程,讓各位好閱讀!!
感謝大家
作者: uranusjr (←這人是超級笨蛋)   2017-07-12 12:02:00
懶得看程式先回根本問題, Qt Creator 可以改執行目錄http://d.pr/i/qfIMn+
作者: Raymond0710 (雷門)   2017-07-12 20:34:00
用this->imgProc()或 imgProc()

Links booklink

Contact Us: admin [ a t ] ucptt.com