c++结构访问冲突
C++ struct access violation
我在头文件中定义了以下结构体:
typedef struct _wfs_cdm_physicalcu
{
LPSTR lpPhysicalPositionName;
CHAR cUnitID[5];
ULONG ulInitialCount;
ULONG ulCount;
ULONG ulRejectCount;
ULONG ulMaximum;
USHORT usPStatus;
BOOL bHardwareSensor;
} WFSCDMPHCU, * LPWFSCDMPHCU;
在我的代码文件中,我尝试这样使用它:
LPWFSCDMPHCU cdm_physical_cass;
strcpy(cdm_physical_cass->cUnitID, "1234");
cdm_physical_cass->lpPhysicalPositionName = "DISP1";
cdm_physical_cass->bHardwareSensor = FALSE;
cdm_physical_cass->ulInitialCount = 100;
代码编译得很好,但是我在该结构上得到访问冲突,所以我认为该结构没有正确初始化。任何想法吗?
cdm_physical_cass
未初始化/分配。你必须调用
LPWFSCDMPHCU cdm_physical_cass = new WFSCDMPHCU;
最好使用智能指针(如std::unique_ptr
)。
LPWFSCDMPHCU cdm_physical_cass;
不是一个结构体,它是指向WFSCDMPHCU
类型结构体的指针。必须为cdm_physical_cass
所指向的结构体分配内存。建议使用WFMAllocateBuffer
函数
由于LPWFSCDMPHCU是指针而不是结构体,因此您需要为该指针(LPWFSCDMPHCU)分配内存(malloc或new,具体取决于语言),然后您可以使用字段
相关文章:
- 写入位置0x0000000C时发生访问冲突
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 链表中写入访问冲突的未知原因
- C++中的openCV Mat访问冲突
- 访问在 C++ 结构中声明的枚举变量
- C++尝试深度复制唯一指针时出现内存访问冲突
- C++ 中动态二维数组的访问冲突
- 从嵌套循环中的 std::list 中删除将返回访问冲突
- 写入访问冲突异常
- 在类 12.exe 中0x7B37FF80 (ucrtbased.dll) 引发异常: 0xC0000005:访问冲突读
- 尝试创建结构对象,在位置0x3FE00000中创建访问冲突写入错误
- 写入结构变量时发生strcpy访问冲突
- 读取位置/使用结构的矢量时发生未处理的异常访问冲突
- 当函数在fread()应用于局部结构变量后返回时发生访问冲突
- 使用结构和数组而不使用指针的访问冲突
- 内存访问冲突插入结构在树结构c++
- c++结构访问冲突
- 在c++中删除多维结构会导致访问冲突
- 抽象类层次结构和访问冲突
- 在结构中使用int(*)[4]时发生访问冲突