2013-06-04 51 views
1

以下是我的代碼的一部分。我不知道它有什麼問題,因爲當我調試此代碼時,出現以下錯誤:使用itoa時未處理的異常

Unhandled exception at 0x60e8144c (msvcr90d.dll) in client0.exe: 0xC0000005: Access violation writing location 0x00000000.

這是itoa中的某處。

CODE:

int num = LOWORD (lparam); 
    char *number = NULL,*detail = NULL; 
    (char*)itoa(num,number,10); 
+0

運行時錯誤說分配內存「我寫不出來解決00000000」。這應該會讓您懷疑寫入空指針的事情正在發生。你的程序中有這樣的指針。你給他們寫信。因此錯誤信息。 – Lundin

+0

閱讀一些文檔如何:http://msdn.microsoft.com/en-us/library/ms235327%28v=vs.110%29.aspx – alk

回答

2

number是指針,你沒有爲它分配內存。然後試圖寫入它。

更新它使用數組或使用malloc

int num = LOWORD (lparam); 
char number[20],*detail = NULL; 
(char*)itoa(num,number,10); 
+0

這對我有效。非常感謝 :) – Ayse

3

你有一個有效的初始化的指針傳遞給itoa()

+0

你的意思是我必須首先初始化*數字,並帶有一些值? :( – Ayse

+0

@AyeshaHassan不,'number'必須指向一個有效的內存位置,在那裏分配內存 – Lundin

+0

謝謝,我現在想到了:) – Ayse