d3d = Direct3DCreate9(D3D_SDK_VERSION);
if (d3d == NULL)
Это ошибка или не соответствует значению, которое вы даете возвращаемому значению Direct3DCreate9, т.е. в зависимости от спецификации функции. Я написал много функций, возвращающих указатели, для которых NULL в качестве возвращаемого значения не был ошибочной ситуацией.
Итак, не приравнивайте «функцию, возвращающую NULL» к «ошибке». Однозначная ошибка - это сбой (с технической точки зрения, неопределенное поведение) в вашем коде, например, если d3d действительно равен NULL, а позже вы разыменовываете его.
int num = 42;
Здесь вы объявляете переменную int с именем num и инициализируете ее значением 42. О какой ошибке вы можете думать? Очевидно, что num никогда не будет «NULL», если это вас беспокоит. 42 может быть правильным значением или ошибкой, в зависимости от контекста.