【发布时间】:2017-01-15 13:24:47
【问题描述】:
我正在编写一个由修改后的双向列表处理的射击机制的主机游戏:
坦克.h:
typedef
struct Shoots
{
struct Shoot* head;
struct Shoot* tail;
}shootsList;
typedef
struct Shoot
{
short coords[2];
short vect;
std::chrono::time_point<std::chrono::system_clock> start;
struct Shoot* next;
struct Shoot* prev;
}shoot_t;
并且在 tank.cpp 我有一个程序
void manageShoots(char arena[][35], char hitmap[][35])
{
shoot_t* sht = shoots.head;
while(sht->next != NULL) sht = sht->next; (...)
程序收到信号SIGSEGV,分段错误。 在 C:...\TS\tank.cpp:46: while(sht->next != NULL) sht = sht->next;
在使用 manageShoots 之前的 main.cpp 中,我已经初始化了列表:
shootsList shoots;
shoots->head = NULL;
shoots->tail = NULL;
我错过了什么吗?
【问题讨论】:
-
我们需要您的其余代码:
next为 NULL??以及分配新单元时的 malloc 部分?
标签: c++ data-structures segmentation-fault