stringstream
을 사용하여 unsigned char*
배열을 string
으로 변환하려고합니다.C++에서 부호없는 char *에서 stringstream으로 : 세그먼트 오류 (코어 덤프) 오류
코드 조각 :
unsigned char * arr;
do{
fill(*arr);
//if I print the array here, the print operation works fine
stringstream s((const char*)arr); //I also tired other castings without success
cout<<s.str()<<endl;
//condition...
} while(condition);
할 일-동안 나는 그것을 반복해야하기 때문이다. stringstream s((const char*)arr);
다음
좀 더 자세한 것을 코드 : 문제는 내가 여기 (코어 덤프) 오류 세그먼트 오류를 얻을 수 있다는 것입니다. fill
내가 갈 것 libusb_interrupt_transfer
int len = 64;
int transferred;
unsigned char *pkt = new unsigned char[len];
unsigned char * arr;
int arrLen;
do {
libusb_interrupt_transfer(handle, (EP_IN | LIBUSB_ENDPOINT_IN), pkt, len, &transferred, 1000);
arrLen = pkt[6];
arr = new unsigned char[arrLen];
for (int i = 0; i < arrLen; i++) {
arr[i] = pkt[i+7];
}
stringstream s;
s << (char*) arr;
}
"ret"란 무엇입니까? "arr"을 의미합니까? –
'arr'을 초기화 하시겠습니까? 'fill'은 무엇을합니까? –
어떤 시점에서 'arr'을 가리키는 메모리를 실제로 할당한다고 가정 할 수 있습니까 (예 :'arr = new unsigned char []')? 그렇지 않으면 아무것도 가리 키지 않을 수 있으며 정의되지 않은 동작을 호출 할 수 있습니다 ... 마찬가지로'arr'이 가리키는 메모리가 널 종료되지 않은 경우 ... –
twalberg