diff --git a/esphome/components/dynamic_lamp/dynamic_lamp.cpp b/esphome/components/dynamic_lamp/dynamic_lamp.cpp index d72c9f0abd..adb59917b9 100644 --- a/esphome/components/dynamic_lamp/dynamic_lamp.cpp +++ b/esphome/components/dynamic_lamp/dynamic_lamp.cpp @@ -342,7 +342,8 @@ std::vector DynamicLampComponent::split_to_int_vector_(const std::strin size_t pos = 0; std::string token; while ((pos = s.find(delimiter)) != std::string::npos) { - token = static_cast(atoi(s.substr(0, pos).c_str())); + c_substr = s.substr(0, pos).c_str(); + token = static_cast(atoi(c_substr)); tokens.push_back(token); s.erase(0, pos + delimiter.length()); }