编译器-C语言,编译和链接均未报错,运行时出现异常。

问题描述

C语言,编译和链接均未报错,运行时出现异常。

编译器报告异常信息(http://img.ask.csdn.net/upload/201508/30/1440920346_80190.png)

代码如下
#include
#include
#include
#define TRUE 1
#define FASLE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef struct elemType
{
float coef;
int expn;

}ElemType;
typedef struct polyn
{
ElemType e;
struct polyn *next;
}Polyn;

void initPolyn(Polyn *Pn);
Status initList(Polyn *Pn);
int listLength(Polyn Pn);
Status appendList(Polyn *Pn,ElemType e);

Status initList(Polyn *Pn)
{
Pn = (Polyn *)malloc(sizeof(Polyn));
Pn->next = NULL;
if(!Pn)
exit(OVERFLOW);
return OK;
}
int listLength(Polyn Pn)
{

Polyn *p = Pn.next;
int i = 0;
printf("function : the length of the PolynList!n");
printf("coef=%f,expn=%dn",Pn.next->e.coef,Pn.next->e.expn);
while(p!=NULL)
{
     i++;
     p = p->next;
}

return i;

}
Status appendList(Polyn *Pn,ElemType e)
{
Polyn *s = (Polyn *)malloc(sizeof(Polyn));
s->next = NULL;
s->e.coef = e.coef;
s->e.expn = e.expn;
s->next = Pn->next;
Pn->next = s;
return OK;

}
void initPolyn(Polyn *Pn)
{
ElemType e;
int i=0,n;
printf("请输入多项式Polyn的项数:");
scanf_s("%d",&n);
printf("请输入多项式Polyn的系数和指数,用逗号隔开!n");
for(i=0;i<n;i++)
{
scanf_s("%f,%d",&e.coef,&e.expn);
appendList(Pn,e);
}
}
void main()
{
Polyn Pn;

initList(&Pn);
initPolyn(&Pn);
printf("%dn",listLength(Pn));
system("pause");

}

解决方案

http://download.csdn.net/detail/nanshao3618/2879641

解决方案二:

initList(Pn);之后Pn还是NULL,想要在子函数改变指针要用2级指针。

解决方案三:

 #define TRUE 1
#define FASLE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef struct elemType
{
    float coef;
    int expn;
}ElemType;
typedef struct polyn
{
    ElemType e;
    struct polyn *next;
}Polyn;
void initPolyn(Polyn *Pn);
Status initList(Polyn **Pn);
int listLength(Polyn Pn);
Status appendList(Polyn *Pn,ElemType e);
Status initList(Polyn **Pn)
{
    *Pn = (Polyn *)malloc(sizeof(Polyn));
    (*Pn)->next = NULL;
    if(!Pn)
    exit(OVERFLOW);
    return OK;
}
int listLength(Polyn Pn)
{
    Polyn *p = Pn.next;
    int i = 0;
    printf("function : the length of the PolynList!n");
    printf("coef=%f,expn=%dn",Pn.next->e.coef,Pn.next->e.expn);
    while(p!=NULL)
    {
         i++;
         p = p->next;
    }

    return i;
}
Status appendList(Polyn *Pn,ElemType e)
{
    Polyn *s = (Polyn *)malloc(sizeof(Polyn));
    s->next = NULL;
    s->e.coef = e.coef;
    s->e.expn = e.expn;
    s->next = Pn->next;
    Pn->next = s;
    return OK;
}
void initPolyn(Polyn *Pn)
{
    ElemType e;
    int i=0,n;
    printf("请输入多项式Polyn的项数:");
    scanf_s("%d",&n);
    printf("请输入多项式Polyn的系数和指数,用逗号隔开!n");
    for(i=0;i<n;i++)
    {
        scanf_s("%f,%d",&e.coef,&e.expn);
        appendList(Pn,e);
    }
}
void main()
{
    Polyn *Pn;
    initList(&Pn);
    initPolyn(Pn);
    printf("%dn",listLength(*Pn));
    system("pause");
}

解决方案四:

我这边可以,你输入的是什么?

解决方案五:

我输入1 2,3也没问题,你确定复制了?

解决方案六:

http://blog.csdn.net/lanseshenhua/article/details/5451798

时间: 2024-10-18 16:01:32

编译器-C语言,编译和链接均未报错,运行时出现异常。的相关文章

byte-OpenGL 窗口无法正确显示(编译,链接均通过)

问题描述 OpenGL 窗口无法正确显示(编译,链接均通过) 正在学习OpenGL,一边学习,一边动手在编,下面的程序改编自nehe的地图加载程序,程序的编译与链接都能通过,可是窗口显示的时候会卡死,个人感觉问题可能出现在display,和reshape 处,以及main函数里面(这块有点不懂),试了很多的方法,还是没能解决问题,还望前辈们能够帮忙指点下,实在是没辙了 /(ㄒoㄒ)/~~ 忘记了 这个需要一个.raw格式的图片进行导入 如果需要的话我再传上来,(公司电脑没法上传 /(ㄒoㄒ)/~

opengl 纹理 球-opengl在mfc中载入一副BMP文件作为纹理,编译链接都通过了但运行时就提示停止工作

问题描述 opengl在mfc中载入一副BMP文件作为纹理,编译链接都通过了但运行时就提示停止工作 HBITMAP hBMP;//定义BMP头BITMAP BMP;//BMP结构体//byte Texture[]={IDB_BITMAP3};byte Texture[]={IDB_BITMAP4};glGenTextures(sizeof(Texture) &texture[0]);// Generate 6 Textures (sizeof(Texture)=6 ID's)for(int lo

android 4.4-r3源码编译未报错,但是安装之后卡死在进入系统的界面?

问题描述 android 4.4-r3源码编译未报错,但是安装之后卡死在进入系统的界面? android 4.4-r3源码编译未报错,但是安装之后卡死在进入系统的界面? 解决方案 本人也有同样的需求,哪位大神帮帮吗 解决方案二: 安装之后?有没有使用模拟器先测试一下,或者看看有没有 CatLog 之类可以获取到卡死的原因信息.

mingw-主工程是MSVC2010编译的,使用MinGW编译的库却会报错?

问题描述 主工程是MSVC2010编译的,使用MinGW编译的库却会报错? 我用Qt_4_8_0_for_Desktop_-_MinGW编译了一个动态库:qextserialportd.dll, 然后我的主工程使用qextserialportd.dll: pro文件中LIBS += ../LeadEDM/SerialPort/qextserialportd.dll,并把qextserialportd.dll和相应头文件都放入工程目录中 再然后使用Qt_4_8_0_for_Desktop_-_MS

使用gradle编译打包scala工程,报错:

问题描述 使用gradle编译打包scala工程,报错: 1.使用的版本 jdk1.7.004 gradle 2.1 scala 2.11.2 2.代码结构src/main/scala/HelloWorld.scala package main.scala object HelloWorld { def main(args: Array[String]): Unit = { println(""hello world"") } } 3.build.gradle文件a

asp.net-页面打开时没有报错,点击别的链接后会报错~

问题描述 页面打开时没有报错,点击别的链接后会报错~ 在 NDQE.Application.Client.QNZX.QNZX_Index.Page_Load(Object sender, EventArgs e) 位置 F:项目1ProjectNDQENDQEApplicationClientQNZXQNZX_Index.aspx.cs:行号 17 在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, E

在命令提示符窗口,使用CSC命令编译.cs的文件,报错error cs1061

问题描述 各位老师好!在命令提示符窗口,使用CSC命令编译.cs的文件,报错errorcs1061"System.Timers.Timer"不包含"Tick"的定义请各位老师帮忙看看,为什么运行不了呢?感谢!代码如下:usingSystem;usingSystem.Threading;usingSystem.Timers;publicclassDisplayTimer{publicstaticvoidMain(String[]args){System.Timers.

ffmpeg-Mac下编译Android FFmpeg2.2.2报错gcc is unable to create an executable file

问题描述 Mac下编译Android FFmpeg2.2.2报错gcc is unable to create an executable file 大家好.报错如题.查看config.log里面有错: EGIN /var/folders/ch/3lnns2f14bv398_ghdz1v9_h0000gn/T//ffconf.nj0OFFb3.c 1 #include 2 #if !(defined ARM_ARCH_4 || defined TARGET_ARCH_4) 3 #error "u

myeclipse链接mysql数据库报错

问题描述 myeclipse链接mysql数据库报错 Unknown system variable 'tx_read_only' Could not retrieve transation read-only status server --- The error occurred in sqlmaps/user/userSQL.xml. --- The error occurred while applying a parameter map. --- Check the user.logi