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

看板C_and_CPP作者 (Dirk_AI(MIX))時間7年前 (2017/07/12 11:19), 7年前編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
開發平台(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) 拜託各位了,若太混亂,或是不懂我在問甚麼, 請跟我說,我重新整理文章流程,讓各位好閱讀!! 感謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.54.15 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1499829548.A.8E9.html

07/12 12:02, , 1F
懶得看程式先回根本問題, Qt Creator 可以改執行目錄
07/12 12:02, 1F

07/12 12:02, , 2F
07/12 12:02, 2F
感謝!!!!!!! 終於可以Debug了 ※ 編輯: DirKai (118.163.54.15), 07/12/2017 15:41:54

07/12 20:34, , 3F
用this->imgProc()或 imgProc()
07/12 20:34, 3F
文章代碼(AID): #1PPPKiZf (C_and_CPP)