我有一个要求,我必须获取一个 int 的 RFID RSSI 值并将其转换为 char 指针并附加到它。下面是我是如何做到的。
char *epcBytes = (char *)tag_operation_report->tag.epc.bytes;
int rssiString = fabs(tag_operation_report->tag.rssi);
char *rssiVal = (char *)rssiString;
char* rssi = "rssi";
char *rssiResult = malloc(strlen(&rssi) + strlen(&rssiVal) + 1);
strcpy(rssiResult, &rssi);
strcpy(rssiResult + strlen(&rssi), &rssiVal);
char *result = malloc(strlen(&epcBytes) + strlen(&rssiResult) + 1);
strcpy(result, &epcBytes);
strcpy(result + strlen(&epcBytes), &rssiResult);
data = (void*)result;
但是我在运行代码时遇到了以下异常。
Unhandled exception at 0x00007FFBD017B2E5 (msvcr120d.dll) in RFIDTest.exe: 0xC0000005: Access violation writing location 0x0000000000000000.
我在这里做错了什么?当我在在线 C 编译器上运行它时,它运行良好。该异常在该行抛出,
strcpy(rssiResult, &rssi);