c语言指针问题 数据结构

问题描述

c语言指针问题 数据结构
 #include<cstdio>
#include<cstring>
#include<cstdlib>
#include<ctime>

#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0

typedef int Status;

typedef struct Book
{
    char id[20];
    char name[30];
    float price;
}Book;

typedef struct List
{
    Book book;
    struct List *next;
}List,*LinkList;

//初始化链表
Status InitList(LinkList *L)
{
    *L = (LinkList)malloc(sizeof(Book));
    if(!(*L))
        return ERROR;
    (*L)->next  = NULL;
    return OK;

}

//将L重置为空表
Status ClearList(LinkList *L)
{
    LinkList p,q;
    if(!(*L))
        return 0;
    p=(*L)->next;           /*  p指向第一个结点 */
    while(p)                /*  没到表尾 */
    {
        q=p->next;
        //printf("ff");
        free(p);
        p=q;
    }
    (*L)->next=NULL;        /* 头结点指针域为空 */
    return OK;
}

void AddNumber(LinkList p)
{

    strcpy(p->book.id,"1");
    strcpy(p->book.name,"平凡的世界");
    p->book.price=rand()%100+10;

}

void CreateListTail(LinkList *L,int n)
{
    LinkList p,r;
    (*L)=(LinkList)malloc(sizeof(Book));
    r=*L;
    while(n--){
        p=(LinkList)malloc(sizeof(Book));
        AddNumber(p);
        r->next=p;
        r=p;
    }
    r->next=NULL;
}

int main()
{
    LinkList L;
    InitList(&L);
    CreateListTail(&L,3);
    if(ClearList(&L))
    {
        printf("数据已经清空!
");
    }
}

出现了这样的情况!

求大神解释

解决方案

关于c语言写数据结构时类型替换的问题
c语言数据结构*单链表*,指针的理解

解决方案二:

你的代码没有错,估计是之前debug没有关掉。你退出virtual studio,重新编译下。

$ vim test.cpp
$ gcc test.cpp
$ ls
a.out test.cpp
$ ./a.out
数据已经清空!

时间: 2024-12-24 02:29:30

c语言指针问题 数据结构的相关文章

(C语言版)数据结构线性表从键盘输入元素实现相关功能,不报错,但执行意外终止

问题描述 (C语言版)数据结构线性表从键盘输入元素实现相关功能,不报错,但执行意外终止 #include #include #define MaxSize 50 typedef char ElemType; typedef struct{//struct结构体 ElemType data[MaxSize]; int length; }SqList; void InitList(SqList &L)//初始化线性表的方法,&是取地址符号,是定义指针符号,如int *b=&a:*a=4

c语言-C语言指针指向数组问题

问题描述 C语言指针指向数组问题 #include int main(){ int a[5]; int *p,i; printf("please enter ten numbers:"); for(i=0;i<5;i++){ scanf("%d",&a[i]); } for(p=a;p<(a+5);p++) scanf("%d",*p); printf(" "); return 0; } 代码如图,是课本上

c语言-关于C语言指针数组的问题

问题描述 关于C语言指针数组的问题 #include int main(){ int all[5]; int *putin(); int *p=putin(); for(int k=0;k<5;k++,p++) printf("%d ",*p); return 0; } int *putin(){ int array[5]; printf("please enter 5 numbers:"); for(int i = 0;i<5;i++){ scanf(

C语言指针使用方法

为初学者服务.这是本文的宗旨.指针是c和c++中的难点和重点.有些程序员们精通dos下的basic.c语言的其它各种特性,在basic中都有类似的东西.只有指针,是baisc所不具备的.指针是c的灵魂. 我不想重复大多数书上说得很清楚的东西,我只是把我看过的书中说得不清楚或没有说,而我又觉得我理解得有点道理的东西写出来. 1.指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址.要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指

Swift与C语言指针结合使用实例

  这篇文章主要介绍了Swift与C语言指针结合使用实例,本文讲解了用以输入/输出的参数指针.作为数组使用的参数指针.用作字符串参数的指针.指针参数转换的安全性等内容,需要的朋友可以参考下 Objective-C和C的API常常会需要用到指针.Swift中的数据类型都原生支持基于指针的Cocoa API,不仅如此,Swift会自动处理部分最常用的将指针作为参数传递的情况.这篇文章中,我们将着眼于在Swift中让C语言指针与变量.数组和字符串共同工作. ####用以输入/输出的参数指针 C和Obj

c语言-新人,C语言,指针,帮我看看怎么改好吗?

问题描述 新人,C语言,指针,帮我看看怎么改好吗? #include void sort(int *a); main(void) { int i,a[10]; float sum=0.0; int *p; p=a; printf("输入10个数n"); for(i=0;i<10;i++) { scanf("%d",p++); } p=a; sort(p); printf("最大值为%d,最小值为%dn",*p,*p+9); for(i=0;

c语言-新手对于数据结构的疑问

问题描述 新手对于数据结构的疑问 楼主现在学的是严蔚敏著的C语言版的数据结构这本书.但是感觉上手很难,非常想学好数据结构,有没有前辈指点一下这门数据结构该怎么学好,该怎么入门..(求详细进阶之路) 解决方案 是的,大学教师最擅长的是把简单的东西说复杂.特别是基础课.本身都是很简单的东西,人人都能学会.但是考试需要有"区分度",说白了,人人都学会的东西怎么出题呢?因为他们自己根本不懂.你需要明确的一点是,你到底是想在考试中得高分还是只是想把数据结构学明白. 如果是前者,你尽管做题就可以了

c语言-C语言指针,字符串复制过程的问题

问题描述 C语言指针,字符串复制过程的问题 下面是字符串复制的代码,str1[]如果限定大小为10,则会溢出,结果是s2正常,s1输出为 u? 请问为什么是这个结果呢? #include #include int main(){ char *s1; char *s2; char str[] = {""How are you?""}; char str1[10]={}; s1 = str; s2 = str1; while ((*s2 = *s1) != ''){ s

c语言-关于C语言 指针数组的小问题

问题描述 关于C语言 指针数组的小问题 指针数组赋值(字符串)后,可以单独引用某一个字符串中的第X个字符(单个字符)吗?输出必须用%s 不能用%c ?? 解决方案 楼主是要这种吗? char *str[3] = {"skjf", "sd", "askjfssf"}; printf("%cn", str[0][3]); //打印出f printf("%cn", *(str[2] + 3));//打印出j 解决