[問題] 大數加法練習 發生寫入位置存取違規

作者: iwantstronge (...)   2014-10-31 06:25:39
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
問題(Question):
各位大大好 我在做大數加法練習時一直無法成功
改了好幾次寫法 可能是觀念不好 一直找不到癥結點
錯誤結果(Wrong Output):
編譯都會過 但在執行時會出現
"寫入位置 0x00000000 時發生存取違規。" 的訊息而導致中斷
程式碼(Code):(請善用置底文網頁, 記得排版)
#define L 100 // L是預計相加數字的最大位數 我設100
using namespace std;
int input(int* data,char n[]){ //這個函式負責把輸入的字串反過來並存在
int i,l; //矩陣中
l=sizeof(n);
memset(data, 0, sizeof(int)*L);
for (i=L-1; i>=0;
作者: johnpage (johnpage)   2014-10-31 06:31:00
int *big1=NULL?????
作者: lucky1lk (賭到沒錢的人)   2014-10-31 06:56:00
int input(int* data,char n[]) ... return 0; ????我不懂你的input的作用 或許是我C不夠熟...++
作者: cjcat2266 (CJ Cat)   2014-10-31 07:24:00
你的out, big1, big2通通沒有allocate memory啊還有sizeof(char [])不會給你字串長度,要用strlen
作者: dontblame (占卜師)   2014-10-31 12:53:00
存取違規 通常就是因為 你沒配置記憶體給該變數
作者: jacky1989   2014-10-31 12:57:00
好可愛的排版阿....
作者: tsoahans (ㄎㄎ)   2014-10-31 14:20:00
你的out是null耶
作者: iwantstronge (...)   2014-10-31 18:19:00
感謝樓上幾位 在配置完記憶體跟改用strlen後 不會執行中斷 但是輸出的結果都是一堆-5-5-5-5-5-5-5-5-6之類的數字 不論我輸入的是甚麼...想不太到哪裡還有問題...感覺應該跟傳入char後的型態處理有關係...在input函式中cout輸入的字串都不是正確的...
作者: jacky1989   2014-11-01 02:49:00
我只看得懂C,看不懂C++......

Links booklink

Contact Us: admin [ a t ] ucptt.com