楼主:
kdok123 (小天)
2014-09-22 23:21:03typedef int elemType;
struct node{
elemType data;
node *next;
};
node *test(node *head, int length)//这里传入的head是链表的头指针
{
node *mat = new node[length];
for(int i=0; i<length; i++)
{
mat = head;
if(!head->next)
break;
head= head->next;
mat++;
}
//上面这个for循环是想让new出来的每个指标指向list里各个node的位置
for(int i=0; i<length; i++)
{
if(i==length-1)
{
mat->next = NULL;
break;
}
mat->next =
node[length] 怎么看都不像 pointer array
我猜你mat想宣成pointer array 可是你宣pointer
楼主:
kdok123 (小天)
2014-09-23 09:09:00node[length]不是pointer array,是node array没错!因为不想宣告double pointer所以才这样写这边是想让mat的指标指向对的位置,接着在对他改值
作者:
bluesoul (å¿™æ»ä½ è€çˆ¸)
2014-09-23 10:15:00head是用来作什么呢?mat = head; 这行很奇怪
楼主:
kdok123 (小天)
2014-09-23 11:25:00刚刚加入注释了! head是链表的头指针
你是不是误会什么了, mat = head 不会置换 node[] 基底原本 mat 指向 node[], 你的动作是改成指向 head
楼主:
kdok123 (小天)
2014-09-23 15:07:00恩恩! 我知道不会置换node,我只是想让他指向head并改head的next而已,为什么这样会出错呢?
那你的 head 基底++ 之后会指到什么?不过也不用讨论这个, array 里放的非 pointer 要怎么指
作者: jackylu63 (J) 2014-09-23 16:52:00
我超喜欢用Linux kernel list.h,他是个双向链结X没有反转的问题