У меня странное поведение в программе на Си. Я передаю несколько аргументов функции со следующей подписью в файле с именем foo.c:
foo (char *first, size_t a, size_t b, size_t c, char *last);
Теперь, когда я вызываю эту функцию из другого файла C, который включает в себя foo.h, например с:
foo("first value", 1, 2, 3, "last value");
в foo first, a, b, c верны, но last всегда равен NULL.
Неважно, какой тип я использую в качестве последнего параметра, и откуда я вызываю эту функцию (даже непосредственно в main без каких-либо предыдущих операций).
Файлы скомпилированы и связаны в один исполняемый файл.
Когда я помещаю foo () в тот же исходный файл, откуда он вызывается, все работает.
Кто-нибудь имеет представление о том, что может быть причиной, по которой при передаче функции на аутсорсинг последний параметр равен NULL?