2016-01-13 126 views
-2

我正在做一個簡單的應用程序來定義一個結構並將數據放置在結構中以學習結構的概念。但是,當試圖插入數據結構時,我得到了訪問衝突。以下是代碼部分。未處理的異常:訪問衝突寫入位置0x00000000

在Test.h文件

typedef struct Msg 
{ 
unsigned char* message_id; 
unsigned char* message_name; 
}Msg_t; 

在Test.cpp的文件

Msg_t *new_node[10]; 

const char *src = "E0"; 
new_node[0]->message_id = (unsigned char *)_strdup(src); //getting access violation error here. 

爲什麼我收到錯誤?請幫忙。

+2

'Msg_t * new_node [10];'你永遠不會初始化這個數組中的指針。 –

+0

我試着將數組初始化爲Msg_t * new_node [10] = {0};但仍然出現錯誤。 –

+1

你必須使用'new Msg_t()'來獲得每個數組元素的有效指針。 –

回答

0

我自己找到了答案。它的問題沒有適當的初始化。我在代碼中添加了以下行。

new_node[0] = new Msg_t(); 
new_node[0]->message_id = (unsigned char *)_strdup(src); 

現在一切正常。

相關問題