c++写入位置时放生访问冲突

问题描述

c++写入位置时放生访问冲突
struct B{
B* bbbb;
int* nInt;
};

class Test{
public:
static const B Testb;
};

const B Test::Testb = {NULL NULL};

int main()
{
B* bb = (B*)&Test::Testb;
bb->nInt = NULL; // 这时会出现访问冲突 我感觉是类静态变量的问题
bb->bbbb = NULL; // 是不是不能更改 全局静态区的这个变量的地址呢??求解
return 0; //
}

解决方案

类中的静态const成员必须在类里面一开始就赋值,因为static类型是在编译时候就要分配地址,并且赋值为0的,而const类型是不允许再次更改其值的,组合起来就是一开始就要赋值。

时间: 2024-09-30 14:09:46

c++写入位置时放生访问冲突的相关文章

指针-写入位置时发生访问冲突。自己写了个函数用来读取device中的数据至OMEGA中 调用时报错

问题描述 写入位置时发生访问冲突.自己写了个函数用来读取device中的数据至OMEGA中 调用时报错 OMEGA=ReadtoOMEGA(temp_data,OMEGA,width,num_pixels,bands,e1,count_Duanyuan); float * ReadtoOMEGA(void const * const device,float * OMEGA,size_t const width,size_t const num_pixels,size_t const bands

virtual- 写入位置 时发生访问冲突

问题描述 写入位置 时发生访问冲突 class CRequest : public CObject { public: int StuffString( const CString& strData ); void StuffHead(CString method, CString lpszURL); CRequest(); virtual ~CRequest(); CByteArray m_buf; CString m_strLine; int m_cbOut; }; ............

指针-为何c语言中会出现读取位置时发生访问冲突

问题描述 为何c语言中会出现读取位置时发生访问冲突 我是写字符串检索.但是如果把jiansuo()这个函数中第二个if(cha(p2)==(p3-p2+1))的话就没问题了.也就是说后边不能==i,如果是i的话,就出错-- #include int cha(char *p1) { int num=0; for (char *p = p1; *p!= ''; p++) { num++; } return num; } void jiansuo(char *p1,char *p2) { for (c

c语言-C语言中读取位置时发生访问冲突该怎么办

问题描述 C语言中读取位置时发生访问冲突该怎么办 #define n 2 int remember[n]; for(i=0;i<n;i++) remember[i]=i; remember[n]= for(i=0;i<n;i++) { for(j=i+1;j<n;j++) if(h[remember[i]].score<h[j].score) k=remember[i]; remember[i]=remember[j]; remember[j]=k; } // 用冒泡排序方法,用辅

求高手解决:0xC0000005: 写入位置 0x00000064 时发生访问冲突

问题描述 求高手解决:0xC0000005: 写入位置 0x00000064 时发生访问冲突 typedef int (_stdcall*FUNA)(unsigned short Codechar* lpDataint lpDatalen);typedef int (_stdcall*FUNB)(char *lpBuf); const char * GetProtocol = ""GetProtocolData"";const char * GetReport =

语言-0xC0000005:写入位置0x0000000时发生访问冲突

问题描述 0xC0000005:写入位置0x0000000时发生访问冲突 以下是代码: #include #include #include #define TAG_SIGN "$$TAG=NMS" #define TAG_LOCK "Lock" #define TAG_DEMOD "Demod" #define TAG_CARDID "CardID" #define TAG_AREAID "AreaID"

CImage出现异常,0xC0000005: 写入位置 0x003e9cd0 时发生访问冲突

问题描述 CImage出现异常,0xC0000005: 写入位置 0x003e9cd0 时发生访问冲突 一个程序要用到CImage类,但是在 debug时候 CImage cImage 出现异常,代码如下: liveImage = cvCreateImage(cvSize(imageInfo.width, imageInfo.height), IPL_DEPTH_8U, 3); EdsUInt32 DataSize = 0; CImage cImage; HRESULT hr; ![图片说明](

对链表头写入next,一直显示0xC0000005: 写入位置 0x00000068 时发生访问冲突

问题描述 对链表头写入next,一直显示0xC0000005: 写入位置 0x00000068 时发生访问冲突 代码如下 #include #include #define ElementType int typedef struct Node{ int Data; struct Node *Next; } List; List L, *PtrL; void Listinput(List *ptrL,int max) { long int i,next_temp,l_temp; int data

vs2008调试错误-vs2008调试出现写入位置访问冲突怎么解决啊,求各位大哥大姐帮帮忙!!!!

问题描述 vs2008调试出现写入位置访问冲突怎么解决啊,求各位大哥大姐帮帮忙!!!! 解决方案 http://bbs.csdn.net/topics/390117643http://jingyan.baidu.com/article/f25ef2544b9887482c1b8295.htmlhttps://www.typecodes.com/cseries/pointermemaccess0xC0000005.html 上面是三篇文章的链接,都涉及到这个问题,你可以点击进去看看: 如果回答对您