2016-01-13 200 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); 

现在一切正常。

相关问题