strdup
не может быть включен в библиотеку, с которой вы ссылаетесь (вы упомянули mingw).Я не уверен, что это в c ++ 0x или нет;Я знаю, что это не в более ранних версиях стандартов C / C ++.
Это очень простая функция, и вы могли бы просто включить ее в свою программу (хотя это недопустимо называть просто "strdup", так как все имена начинаютсяс "str" и строчной буквой зарезервированы для расширений реализации.)
char *my_strdup(const char *str) {
size_t len = strlen(str);
char *x = (char *)malloc(len+1); /* 1 for the null terminator */
if(!x) return NULL; /* malloc could not allocate memory */
memcpy(x,str,len+1); /* copy the string into the new buffer */
return x;
}