C++链表报错,vs2022

有介绍一下是什么原因吗,用while循环能输出但是报错用for循环给出范围输出就不报错

img

head->next是一个无效指针,看看创建链表的时候怎么设置的。

每个节点初始化后,最好把next域赋于NULL


/*线性表子系统*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <malloc.h>
typedef  int  DataType;         /*定义DataType为int类型*/
typedef  struct  linknode       /*单链表存储类型*/
{
    DataType    data;         /*定义结点的数据域*/
    struct  linknode *next;    /*定义结点的指针域*/
} LinkList;

LinkList *InitList()
{   /*初始化链表函数*/
    LinkList *head;
    head = (LinkList*)malloc(sizeof(LinkList)); /*动态分配一个结点空间*/
    head->next = NULL;
    return head;                    /*头结点L指针域为空,表示空链表*/
}

void CreateListH(LinkList* head, int n,int x[])
{   /*头插法建立链表函数*/
    LinkList* s;
    int i;
//    printf("请输入%d个整数:", n);
    for (i = 0; i < n; i++)
    {
        s = (LinkList*)malloc(sizeof(LinkList));    /*生成新结点*/
//        scanf("%d", &s->data);                      /*读入新结点的数据域*/
        s->data = x[i];
        s->next = head->next;              /*将新结点的指针域存放头结点的指针域*/
        head->next = s;                    /*将新结点插入头结点之后*/
    }
    printf("建立链表操作成功!");
}


void DispList(LinkList* head)
{  /*显示输出链表函数*/
    LinkList* p;
    p = head ->next;
    while (p != NULL) {
        printf("%5d", p->data);
        p = p ->next;
    }
}



int main()
{
    int x[] = { 54,89,13,9,79,54,54,70,54,7 };
    int y[] = { 7,54,70,54,54,79,9,13,89,84 };
    linknode nd;
    linknode* head = &nd;
    CreateListH(&nd,10,y);
    DispList(&nd);
}
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7799402
  • 除此之外, 这篇博客: C++文件说明及使用方法中的 VS2015中导入文件说明 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    1.VC++目录->包含目录:添加include目录

    2.VC++目录->库目录:添加lib目录

    3.C/C+±>常规->附加包含目录:添加include目录

    4.链接器->常规->附加库目录:添加lib目录

    5.链接器->输入->附加依赖项:添加 TestDLL.lib

    上面的1和3都能将头文件的include目录加入到工程,但是区别在于,1中的包含目录会修改系统的Include宏的值,是全局的,而3只针对当前项目,对其它项目没有影响。2与4同理,2会影响全局的库,4只针对当前项目添加库。5是使用的lib文件夹中的依赖项。

    参考:

    https://www.cnblogs.com/ganxiang/p/13206704.html

    https://www.cnblogs.com/tiduswj/p/3716507.html


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^