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);