链表的问题...
#include <ntddk.h>
#define MEM_TAG 'jklk'
typedef struct
{
LIST_ENTRY List_entry;
ULONG Data;
}MY_LIST,*PMY_LIST;
LIST_ENTRY My_listHead;//声明一个结构
void Unload(IN PDRIVER_OBJECT DriverObject)
{
KdPrint(("驱动卸载成功!\n"));
}
VOID Listinit()
{
InitializeListHead(&My_listHead);//初始化
}
NTSTATUS MyAppendData(ULONG AppendValue)
{
PMY_LIST my_AppendList=(PMY_LIST)ExAllocatePoolWithTag(PagedPool,sizeof(MY_LIST),
MEM_TAG);
if(my_AppendList==NULL)
{
KdPrint(("分配空间失败\n"));
return -1;
}
else
{
KdPrint(("分配空间成功\n"));
}
my_AppendList->Data=AppendValue;
InsertHeadList(&My_listHead,(PLIST_ENTRY)my_AppendList);
ExFreePool(my_AppendList);
return STATUS_SUCCESS;
}
void ShowList()
{
PLIST_ENTRY p=NULL;
PMY_LIST elem;
KdPrint(("Show List start\n"));
for( p=My_listHead.Flink;p!=My_listHead.Flink;p=p->Flink)
{
elem=CONTAINING_RECORD(My_listHead.Flink,MY_LIST,List_entry);
}
KdPrint(("\n\nValue Is%x \n",elem->Data));
}
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegPath)
{
ULONG value;
value=0;
KdPrint(("驱动加载成功!\n"));
Listinit();
for(value=0;value<10;value++)
MyAppendData(value);
ShowList();
DriverObject->DriverUnload=Unload;
return STATUS_SUCCESS;
}
哪位大侠帮忙改一下这段链表,该如何让他将 10个数全部都显示出来的呀?
晕死了,试了好多次他只能显示一个数值,我看的是天书夜读他上面的例子仿写的..
但搞 了半天还是没显示出来,谢谢哪位帮助一下哈。。
...全文
相关推荐
Josephus问题C++单循环链表实现
这个完全符合课本上习题的要求,我作业交的就是这个,我自己还在里面做了详细的注释
josephu问题 单链表 双链表
josephu问题 单链表 双链表 分别实现
报数问题的链表求解
13人围成一圈,从第一个人开始报数1,2,3,报到三的人推出圈子,找出最后留在圈内的人
链表解决的约瑟夫问题
约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的人的序号为5,4,6,2,3。最后剩下1号。
顺序链表,单链表,静态链表求解的约瑟夫问题josephus的C语言代码,可以直接运行
用顺序链表,单链表,静态链表三种结构求解的约瑟夫josephus问题,完整的代码,可以直接编译,运行的,


驱动开发/核心开发
