안녕하세요, 아래 코드와 같이 프로젝트의 일부로 AIX 6에서 C++ 코드를 작성했습니다 : 컴파일되고 빌드됩니다. 아래 라인 실행시 세그먼테이션 오류가 발생했습니다. "EquipmentSMU _equipmentSMU = _smuArray [i]; "AIX에서 C++ Segmentation 오류
저는 bjam으로 빌드하고 모든 라이브러리를 -bmaxdata : 0x80000000 옵션과 연결합니다. 실행하기 전에 export $ LDR_CNTRL = MAXDATA = 0x80000000으로 시도했지만 문제를 해결할 수 없습니다.
Windows에서 동일한 코드를 실행했습니다. 아무 문제없이 잘 실행됩니다.
내 코드 :
#define EQUIP_MAX_SMU_LEN 30
#define EQUIP_MAX_SMU 100
typedef struct
{
wchar_t _smu[EQUIP_MAX_SMU_LEN+1];
} EquipmentSMU;
class Equipment
{
public:
Equipment();
~Equipment();
private:
void _AddSMU(wchar_t* smu);
private:
EquipmentSMU _smuArray[EQUIP_MAX_SMU];
};
void Equipment::_AddSMU(wchar_t* smu)
{
int i;
for (i=0; i < EQUIP_MAX_SMU; i++)
{
EquipmentSMU _equipmentSMU=_smuArray[i];//segmentation fault coming at here
wchar_t _tempSmu = _equipmentSMU._smu[0];
if(_tempSmu == L'\0')
{
wcsncpy(_smuArray[i]._smu, smu, EQUIP_MAX_SMU_LEN+1);
return;
}
if(wcsncmp(_smuArray[i]._smu, smu, EQUIP_MAX_SMU_LEN+1) == 0)
{
return;
}
}
}
사람이이 문제를 해결하는 데 도움 주시기 바랍니다 수 있습니다. 고마워,
segfault에 'i'가 무엇입니까? –
그것은 0. 반복의 맨 처음에 발생합니다. – user2185374
'장비'인스턴스가 고장 났다고 생각합니다. 어떻게 그것을 만들고 사용하고 있습니까? – molbdnilo