diff --git a/silabs_examples/template/efr32/src/AppTask.cpp b/silabs_examples/template/efr32/src/AppTask.cpp index cc8dd6d6c7d6cd..74f2c429e6ddb1 100644 --- a/silabs_examples/template/efr32/src/AppTask.cpp +++ b/silabs_examples/template/efr32/src/AppTask.cpp @@ -275,11 +275,13 @@ CHIP_ERROR AppTask::Init() // Print setup info on LCD if available #ifdef DISPLAY_ENABLED - std::string QRCode; + // Create buffer for QR code that can fit max size and null terminator. + char qrCodeBuffer[chip::QRCodeBasicSetupPayloadGenerator::kMaxQRCodeBase38RepresentationLength + 1]; + chip::MutableCharSpan QRCode(qrCodeBuffer); if (GetQRCode(QRCode, chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)) == CHIP_NO_ERROR) { - LCDWriteQRCode((uint8_t *) QRCode.c_str()); + LCDWriteQRCode((uint8_t *) QRCode.data()); } else {