Is there a way to use nullable and reference struct memory addresses ? just wondering if there is a

Is there a way to use nullable and reference struct memory addresses ? just wondering if there is a way to make it cleaner:
//this works
var debugCreateInfo = DebugMessengerEnabled ? CreateDebugUtilsMessengerCreateInfoExt() : (default);
var createInfo = new InstanceCreateInfo()
{
    PNext = DebugMessengerEnabled ? &debugCreateInfo : null
};

//this doesn't because nullable changes the struct and it crashes at runtime
var debugCreateInfo = DebugMessengerEnabled ? CreateDebugUtilsMessengerCreateInfoExt() : (DebugUtilsMessengerCreateInfoEXT?)null;
var createInfo = new InstanceCreateInfo()
{
    PNext = DebugMessengerEnabled ? &debugCreateInfo : null
};

//this throws a compile error Cannot take the address of the given expression
var debugCreateInfo = DebugMessengerEnabled ? CreateDebugUtilsMessengerCreateInfoExt() : (DebugUtilsMessengerCreateInfoEXT?)null;

var createInfo = new InstanceCreateInfo()
{
    PNext = DebugMessengerEnabled ? &debugCreateInfo.Value : null
};

sidenote: debugCreateInfo is a struct
Was this page helpful?