저는 현재 C++로 코드를 개발하고 있으며 더 많은 "C++"이되도록 char *을 문자열로 옮깁니다.C++ 문자열 - 할당이 충돌합니다.
그런데이 값을 할당하는 데 몇 가지 문제가 있습니다.
std :: string에 str을 지정하자 마자 코드가 충돌합니다.
다음은 코드입니다.
std::string str;
std::cout << "Friendly\n";
str.assign(LIBMTP_Get_Friendlyname(PulsDeviceMngr->device));
if(str.empty())
PulsDeviceMngr->devicename = "Not Defined";
else {
PulsDeviceMngr->devicename = str ;
str.clear();
}
또한 대체하려고했습니다 :
str.assign(LIBMTP_Get_Friendlyname(PulsDeviceMngr->device));
LIBMTP_Get_Friendlyname
str = LIBMTP_Get_Friendlyname(PulsDeviceMngr->device);
으로 NULL을 반환 할 수있다이 정의의 FriendlyName되지 않습니다. 이 NULL을 반환하지 않도록 내가 잃었어요
는 .. 그것은 쉬운 이름이 정의되어 있는지 확인 당신의 도움
할당 전에 'NULL'인지 확인해야할까요? 널 포인터를 할당 할 권한이 없다고 확신한다. – Rufflewind
'PulsDeviceMngr-> devicename'은 어떤 타입입니까? –
LIBMTP는 char *을 반환합니다. – Seb