起泡胶 2021-09-30 23:09 采纳率: 100%
浏览 281
已结题

VSCODE2021 c语言调试的时候黑框一闪而退,并且调试控制台出现0xc000007b错误

引入了自己的头文件,自己不引入头文件时没有错误


#include"LinkListFOR12.h"//自己引入的头文件
#include<stdio.h>
int main()
{
    int Leng,i;
    char mid;
    LinkList L;
    InitList_L(L);
    printf("请输入您想要的链表的长度:");
    scanf("%d",&Leng);
    fflush(stdin);
    for (i=1;i<=Leng;i++)
    {
        .....不重要的
    };
    
    
    getchar();
    printf("\n%d",ListLength_L(L));
    return 0;
}

以下是调试控制台内容


=thread-group-added,id="i1"
GNU gdb (GDB) 7.6.1
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
=cmd-param-changed,param="pagination",value="off"
[New Thread 3116.0x3428]
[New Thread 3116.0x7168]
[New Thread 3116.0x6c90]
[New Thread 3116.0x6f78]
ERROR: During startup program exited with code 0xc000007b.
The program 'z:\VScode\Code\Data structure\homework\homework4\work12.exe' has exited with code 0 (0x00000000).

以下是引入的头文件内容

#include<iostream>
#include<iomanip>

using namespace std;

typedef char ElemType;
//

typedef struct Node {
 ElemType data;
struct  Node *next;
}LNode,*LinkList;                 // LinkList为结构体指针类型

void InitList_L(LinkList &L)
    {  
L=(LNode *)malloc(sizeof(LNode));  // 申请存放一个结点数据所需要的内在空间
if(!L)   exit(1);                        // 存储分配失败
       L->next=NULL;                            // 表头结点的指针域置空
}// InitList_L

int ListLength_L( LinkList L ) 
{     // L为带头结点的链表的头指针,本函数返回L所指链表的长度
  LinkList  p;
int k=0;
p=L->next;                             // p指向链表中的第一个结点
  while(p) 
   {  k++;  p=p->next;                 // k计非空结点数
   }
  return k;
}// ListLength_L

LNode *LocateElem_L( LinkList L,ElemType e) 
{  // 在L所指的单链表中查找第一个值和e 相等的结点,若存在,则返回其指针;
// 否则返回空指针
  LinkList  p;                           
  p=L->next;                               // p指向链表中的第一个结点
   while (p&&p->data!=e ) p=p->next;
  return p;
}// LocateElem_L

bool ListInsert_L( LinkList &L, int i, ElemType e) 
{    //在带有头结点的单链表L中的第i个结点之前插入元素e
LinkList p,s;
  int j;
  p=L;  j=0;
  while(p->next&&j<i-1)  { p=p->next; j++; }   // 寻找第i-1个结点,并让p指向此结点
  if(j!=i-1)   return false;                   // i的位置不合理
  if((s=(LNode *)malloc(sizeof(LNode)))==NULL) exit(1);  // 存储分配失败
  s->data=e;  
  s->next=p->next;  p->next=s;                  // 插入新结点
  return true;
 }// ListInsert_L

bool ListDelete_L( LinkList &L, int i, ElemType &e) 
{    // 删除带有头结点的单链表L中的第i个结点,并让e返回其值
LinkList p,q;
  int j;
  p=L;  j=0;
 while(p->next->next&&j<i-1){ p=p->next; j++; } //寻找第i-1个结点,并让p指向此结点
  if(j!=i-1)   return false;                     // i的位置不合理
  q=p->next;                                     // q指向其后继
p->next=q->next;                               // 删除q所指结点
e=q->data;    free(q);
  return true;
 }// ListDelete_L

bool GetElem_L(LinkList L,int i, ElemType &e)
{    // 取出单链表L中第i个元素,并用e返回其值
LinkList p;
  int j;
  p=L;  j=0;
while(p->next&&j<i){ p=p->next; j++; }  // 寻找第i个结点,并让p指向此结点
  if(j!=i)   return false;                      // i的位置不合理
  e=p->data;                                     // 被取元素的值赋给e
  return true;
 }// GetElem_L

void CreateList_L_Rear(LinkList &L,ElemType a[],int n ) 
{   // 已知一维数组A[n]中存有线性表的数据元素,利用尾插法创建单链表L
   LinkList p,q;   int i;
      L=(LinkList)malloc(sizeof(LNode));    // 创建立头结点
q=L;                                // q始终指向尾结点,开始时尾结点也是头结点
for(i=0;i<n;i++) 
{  p=(LinkList)malloc(sizeof(LNode));          // 创建新结点
       p->data=a[i];                               // 赋元素值
       q->next=p;                                  // 插入在尾结点之后
       q=p;                                         // q指向新的表尾
     }
   q->next=NULL;                                    // 表尾结点next域置空
}// CreateList_L_Rear

void CreateList_L_Front(LinkList &L,ElemType a[],int n ) 
{    // 已知一维数组A[n]中存有线性表的数据元素,利用头插法创建单链表L
   LinkList p;   int i;
L=(LinkList)malloc(sizeof(LNode));              //创建立头结点
L->next=NULL;                               
for(i=n-1;i>=0;i--)   
{    p=(LinkList)malloc(sizeof(LNode));           //创建新结点
        p->data=a[i];                                // 赋元素值
        p->next=L->next;                          // 插入在头结点和第一个结点之间
       L->next=p;                                         
      }
}// CreateList_L_Front

void ListTraverse_L(LinkList L)
{
 LinkList p=L->next;
 while(p)
  {  cout<< setw(6)<<p->data;
     p=p->next;
  }
cout<<endl;
}// ListTraverse_L

void DestroyList_L(LinkList &L )
{
  LinkList p,p1;
  p=L;
  while(p) 
  { p1=p;
    p=p->next;
    free(p1);
   }
   L=NULL;
 }// DestroyList_L

再粘贴一下三个json文件代码

c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "Z:/VScode/mingw/include/*"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "Z:/VScode/mingw/bin/gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64",
            "configurationProvider": "go2sh.cmake-integration"
        }
    ],
    "version": 4
}


launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "targetArchitecture": "x86",
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
            "miDebuggerPath": "Z:/VScode/mingw/bin/gdb.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "externalConsole": true,
            "preLaunchTask": "g++"
        }
    ]
}

setting.json
{
    "files.encoding": "gbk"
}

tasks.json
{
  "version": "2.0.0",
  "command": "g++",
  "type": "shell",
  "presentation": {
    "echo": true,
    "reveal": "always",
    "focus": false,
    "panel": "shared",
    "showReuseMessage": true,
    "clear": false
  },
  "args": ["-m32","-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe"],
  "problemMatcher": {
    "owner": "cpp",
    "fileLocation": ["relative", "${workspaceRoot}"],
    "pattern": {
      "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
      "file": 1,
      "line": 2,
      "column": 3,
      "severity": 4,
      "message": 5
    }
  }
}

文件可以通过编译,用cfree可以成功运行,但是用vS调试就会出现这样的错误

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-10-01 07:27
    关注

    你要不引入头额为那件,LinkList也不知道是什麽东西,能通过编译?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月9日
  • 已采纳回答 10月1日
  • 修改了问题 10月1日
  • 创建了问题 9月30日

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?