本文主要是介绍[VC] Visual Studio中读写权限冲突,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前置场景: 编译没有报错,但是运行提示 内存异常:
情景1: 如下代码运行异常,提示引发了异常:写入权限冲突。*** 是 0xFFFFF.....
char* str = (char*)malloc(10);str[0] = 0x30;
解决方案:要包含头文件<stdlib.h>
情景2: 在FileA文件调用FileB文件的函数,但是在FileA中却没有声明该B函数的原型。
这会导致引发读取访问权限冲突。表现为调用后和原函数内的内存地址不一致。
FileB.c
//函数定义,返回指针类型
char* get_string()
{char* value = "TEST";printf(" value addr=>%p.\n",value); //输出 00007FF7595DA8B0return test;
}FileA.c//在没有声明 get_string()下调用,编译没有出错。 char* pt_str = get_string();printf(" pt_str addr=%p.\n",pt_str );//输出 00000000595DA8B0
解决方案: 在FileA文件头增加 FileB函数的extern声明。
这篇关于[VC] Visual Studio中读写权限冲突的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!