前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >排错-Error--memory violation  Exception ACCESS_VIOLATION received解决方

排错-Error--memory violation  Exception ACCESS_VIOLATION received解决方

作者头像
授客
发布2019-09-11 10:03:11
1.6K0
发布2019-09-11 10:03:11
举报
文章被收录于专栏:授客的专栏授客的专栏

测试代码:

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;

}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-12-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档