diff --git a/icu4c/source/i18n/measunit_extra.cpp b/icu4c/source/i18n/measunit_extra.cpp index 773f98b1269..0ae76b5d86f 100644 --- a/icu4c/source/i18n/measunit_extra.cpp +++ b/icu4c/source/i18n/measunit_extra.cpp @@ -861,6 +861,10 @@ LocalArray MeasureUnit::splitToSingleUnits(int32_t& outCount, UErro const MeasureUnitImpl& impl = MeasureUnitImpl::forMeasureUnit(*this, temp, status); outCount = impl.units.length(); MeasureUnit* arr = new MeasureUnit[outCount]; + if (arr == nullptr) { + status = U_MEMORY_ALLOCATION_ERROR; + return LocalArray(); + } for (int32_t i = 0; i < outCount; i++) { arr[i] = impl.units[i]->build(status); }