排错-Error--memory violation Exception ACCESS_VIOLATION received解决方
Error -- memory violation : Exception ACCESS_VIOLATION received
by:授客 QQ:1033553122
测试代码:
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;
}
作者:授客
微信/QQ:1033553122
全国软件测试QQ交流群:7156436
Git地址:https://gitee.com/ishouke
友情提示:限于时间仓促,文中可能存在错误,欢迎指正、评论!
作者五行缺钱,如果觉得文章对您有帮助,请扫描下边的二维码打赏作者,金额随意,您的支持将是我继续创作的源动力,打赏后如有任何疑问,请联系我!!!
微信打赏
支付宝打赏 全国软件测试交流QQ群