C++Linux:在类中声明数组会导致分段错误
C++ Linux: Declaring an array in a class causes segmentation fault
我有一个类,当我尝试在头文件中添加以下声明时:
bool m_DeviceIDs[100];
我有一个分割错误。有什么想法吗?整个类标题:
class Protocol
{
vector<ProtocolDevice*> _DeviceProtocols;
vector<Device>* _Devices;
Helper _Helper;
vector <unsigned char> m_MessageToSend;//xml messages to send
bool m_LockDevices;
//bool m_DeviceIDs[100];
unsigned int GetVacantID();
public:
Protocol(void){};
Protocol(vector<Device>* devices);
~Protocol(void);
void RemoveDevice(int DeviceID);
void AddDevice(Device device);
bool SendPing( int DeviceID);
bool GetInputStatus( int DeviceID);
void GetLowLevelConfiguration(int DeviceID);
bool ActivateOutput(char outputID, bool state, int DeviceID);
bool ActivateBSUHF(unsigned char state, int DeviceID);
bool ActivateUnitLF(unsigned char state,int DeviceID);
void StartDeviceListeners();
void WriteMessageToDevice(int DeviceID, unsigned char* message, int length);
vector<unsigned char> CollectDataFromDevice(int DeviceID,int dataLength);
int GetDeviceAvailableDataLength(int DeviceID);
void RefreshServerDetails(int DeviceID, string host, int port,int reconnectInterval);
void ReconnectHost(int DeviceID);
void SendVersion(int,bool);
void StartListentoDevice(int DeviceID);
void StopListenToDevice(int DeviceID);
bool SendSetLowLevelConfiguration(LowLevelConfiguration llConfig, int WaitAckMS, bool FromBaseToLocator,int DeviceID);
bool OperateExciterRead(char operation, unsigned int ReaderID, int Retries,int DeviceID);
bool RequestConfigurationFromLocator(int ReaderID,int TimeOut, int Retries,int DeviceID);
void SendXMLMessage(unsigned char opcode, vector<unsigned char> XMLData,unsigned int MessageID, unsigned int SourceID, unsigned int DestID);
void Mute(int Length, int DeviceID);
};
您显示的代码没有问题,但您可能想尝试std::位集而不是bool
数组,因为它更具多样性和空间效率,比如:
#include <bitset>
std::bitset<100> m_DeviceIDs;
相关文章:
- 在某些循环内使用vector.push_back时出现分段错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 当我的阵列太大时出现分段错误
- 分段错误当我试图运行程序时出错
- 在c++中初始化矩阵时出现分段错误(核心转储)
- 尝试使用集合函数时出现分段错误
- 我无法缩小此分段错误的原因
- g++的分段错误(在NaN上使用to_string两次时)
- 我是如何在这段代码中出现分段错误的
- 创建结构的数组时遇到分段错误
- 在c++中键入向量中的所有值后,得到分段错误(核心转储)
- 在 c++ 中实现 Trie 时出现分段错误
- 为什么 fstream 在打开带有格式的文件时会导致分段错误?
- 为什么我遇到分段错误?
- 动态类的分段错误(家庭作业问题)
- 分段错误 - 读取初始化指针的数组
- 如何摆脱C ++中的分段错误错误?
- 使用 CTYPE 时出现分段错误
- 为什么代码给出分段错误?