分享

排错

 test资料库 2015-12-04

Error -- memory violation : Exception ACCESS_VIOLATION received

 

by:授客 QQ1033553122

测试代码:

Action()

{

    char *a = NULL;

    strcpy(a, "shouke");

    return 0;

}

 

运行报错:

Action.c(4): Error: C interpreter run time error: Action.c (4):  Error -- memory violation : Exception ACCESS_VIOLATION received.

Action.c(4): Notify: CCI trace: Action.c(4): strcpy(0x00000000, 0x032b0111 "shouke")

.

Action.c(4): Notify: CCI trace: Compiled_code(0): Action()

 

原因分析:

char *a = NULL; a为指向栈内存的指针,暂时值为NULL,指向内存为空。所以,不能用于存放内容。

 

改正方法:

法一,用数组开辟栈内存

Action()

{

    #char *a = NULL;

    char a[20]={0};

    strcpy(a, "shouke");

    return 0;

}

 

法二,开辟堆内存:

Action()

{

    char *a = NULL;

    a = (char *)malloc(sizeof(char)*20);

    strcpy(a, "shouke");

    free(a);

    a = NULL;

    return 0;

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多