Учитывая минимальную предоставленную информацию, если бы мне пришлось угадывать, я бы сказал, что первая строка работает, потому что g определяется как указатель на DD и инициализируется как 0 или null. Послесловие через запятую означает, что h (с аргументами) определяется как функция (с аргументами), которая возвращает объект DD (не указатель на объект, а фактический объект)
Вторая строка не выполняется, потому что вы пытается инициализировать g возвращаемым значением функции h. Поскольку мы не знаем, как на самом деле определяется h, я бы предположил, что он либо не определен, либо определен, но не возвращает указатель на DD.