引入了自己的头文件,自己不引入头文件时没有错误
#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调试就会出现这样的错误