Usage of a C library in a C++ project (std::string char array conversion)
If mkd_string accepts a const char*, then you are better off using a std::string and its method c_str() to pass the value to the function. Otherwise your solution is correct.
Yes. See this answer for the why. Or build this code (tested with g++ -std=c++0x, gcc version 4.6):

#include &lt;iostream&gt;
int main()
{
    if (NULL == nullptr)
        std::cout &lt;&lt; "NULL == nullptr\n";   
}

Declare the variable immediately before using it, possibly also defining it. This reduces its scope to the minimum, helps the reader/maintainer of the code understanding what the variable is for, and avoids terrible errors deriving from forgetting to initialize variables. (This should also provide you with some guideline for the question about re-using the same variable twice in the same block.)