动态分配内存出有关问题了。求指教急

动态分配内存出问题了。求指教急急急急急
本帖最后由 Ramborzzj 于 2013-12-16 21:26:36 编辑
node ch[2];
//   ch=(node *)malloc(sizeof(node)*2);
   ch[0]=q.front();
   q.pop();
   ch[1]=q.front();
这样运行好使
  node *ch;
 ch=(node *)malloc(sizeof(node)*2);
   ch[0]=q.front();
   q.pop();
   ch[1]=q.front();
这样运行就不好使。。请问是什么问题。。急急急急急

------解决方案--------------------
引用:
Quote: 引用:

哦,你这个问题应该是指针和值的问题吧,因为你的第一种定义方式是直接定义了一个数组,内存分配好了空间,第二种方式是指针的方式,编译器将动态分配好的指针指向了你所定义的指针。所以你两种方式都用q.front(),不行吧,q.front()返回的是node指针还是一个具体node类型呢?
还有可能是因为你动态分配没有成功,你看一下ch的malloc的返回值是什么,如果没有分配成功会使得内存访问错误吧。

queue是一个node类型的队列,不是*node,但是我用new好像可以了。郁闷中

。。。。。。
看来你没有将malloc的头文件加入进去。。。。