Я использую Visual Studio 2015, и я пытаюсь использовать strtok_r. По какой-то причине компилятор не распознает его.Strtok_r неразрешенный внешний символ
Вот мой код:
#include <string.h>
#include <stdlib.h>
#include <assert.h>
char** str_split(char* a_str, const char a_delim, int * argc)
{
... some other code
if (result)
{
size_t idx = 0;
char* saveptr = a_str;
char* token = strtok_r(a_str, delim, &saveptr);
//char * token;
while (token)
{
assert(idx < count);
*(result + idx++) = strdup(token);
token = strtok_r(0, delim, &saveptr);
}
assert(idx == count - 1);
*(result + idx) = 0;
}
return result;
Я следовал этой документации: http://linux.die.net/man/3/strtok_r
устаревшие ли функция? или я делаю глупую ошибку? Спасибо заранее, ребята.
MS не является полностью POSIX совместимыми. Вам необходимо прочитать документацию по [MS documentation] (https://msdn.microsoft.com/en-us/library/2c8d19sb.aspx), а не документацию по Linux, если вы программируете с помощью инструментов MS. – kaylum
Для практических целей 'strtok_r()' в системах POSIX-ish эквивалентно 'strtok_s()' в системах Windows. Эта эквивалентность не всегда работает, но в этом конкретном случае это происходит. –