【求助大神·在线等】c语言 数据结构 链表 Access Violation问题
本帖最后由 u013095718 于 2013-12-09 20:22:18 编辑 #include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct subjects
{
char name[20];
float score;
}sub;
typedef struct student
{
int num;
char name[20];
sub subject[3];
struct student* next;
}stu,*pstu;
#define SIZE sizeof(stu)
//函数申明
void PrintMenu();
pstu AddStu(pstu );
pstu DeleStu(pstu );
pstu RwrStu(pstu );
void FindStu(pstu , char );
void Count(pstu ,char * ,float ,float );
pstu Rank(pstu ,char *,int );
void SaveQuit(pstu );
int main()
{
char filename[] = "D:\\编程学习\\编程实践\\c语言课程设计1 学生信息管理\\data.txt";
FILE *fp;
char StrLine[50];
char *p[9];
char n,j;
char *str,*psubname,subname[20];
pstu head,ptr;
float score1,score2;
int LenLink=0;
//创建带表头结点的空单链表head,用来存放载入信息
head = (pstu)malloc(SIZE);
ptr = head;
ptr->next = NULL;
以上是源文件的部分,定义了很多变量是程序接下来用的,但是到了申请内存空间那句就运行错误了,编译链接都没错,单步调试到 head = (pstu)malloc(SIZE)这里显示Access violation,无法运行。
很奇怪,我把链表的建立提出来单独实验发现有没有问题,就是下面这样,就没问题,但是上面的程序却是在这一部分出错,费解!
各位大神,帮帮忙吧,新人,分不多。
typedef struct subjects
{
char name[20];
float score;
}sub;
typedef struct student
{
int num;
char name[20];
sub subject[3];
struct student* next;
}stu,*pstu;
#define SIZE sizeof(stu)
int main()
{
pstu head,ptr;
//创建带表头结点的空单链表head,用来存放载入信息
head = (pstu)malloc(SIZE);
ptr = head;
ptr->next = NULL;
free(head);
}
[解决办法]