创建动态单向链表如下:
#include <bits/stdc++.h> struct node{ //定义链表结点 int data; //结点的值 node *next; //单向链表,只有一个next指针 }; int main(){ int n,m; scanf("%d %d",&n,&m); node *head,*p,*now,*prev; //定义变量 head = new node; head->data = 1; head->next=NULL; //分配第一个结点,数据置为1 now = head; //当前指针是头 for(int i=2;i<=n;i++){ p = new node; p->data = i; p->next = NULL; //p是新结点 now->next = p; //把申请的新结点连到前面的链表上 now = p; //尾指针后移一个 } now->next = head; //尾指针指向头:循环链表建立完成 return 0; } |
这里的now->next = head如果换成p->next = head的话,显然是很正确的,但是在VS2022中调试的话会出现报错。
可能是因为安全方面的问题吧
解决方案:
右键项目,点击属性。
在C/C++常规中关闭SDL检查。
此时运行代码就没有问题。