2015-01-26 1 views
1

Я возился с почтовыми ящиками, и теперь у меня возникла проблема. Всякий раз, когда я пытаюсь запустить, я получаю сообщение об ошибке в заголовке, но я не знаю, как я должен его исправлять. То, что я пытаюсь сделать, это «исправление» полного пути почтового ящика, но, похоже, он не похож на часть strcat_s.Выражение: (L "Строка не завершена нулевым числом" & & 0)

HANDLE mailslotCreate (char *name) { 
    char fullName[50] = "\\\\.\\mailslot\\"; 
    strcat_s(fullName, strlen(fullName), name); 
    return CreateMailslot(fullName, 0, TIME_OUT, NULL); 
} 

Imgur link to error

EDIT: Изменение STRLEN к SIZEOF просто изменил ошибку "размер буфера слишком мал" вместо этого.

+1

Проверьте руководство, что означает второй аргумент strcat_s. –

+0

«Размер буфера слишком мал», вероятно, означает, что именно он говорит –

ответ

2

См. Документацию по адресу strcat_s. В нем говорится, что вторым параметром должен быть размер буфера назначения. Когда вы проходите strlen(fullName), нет места для остановки \0.

Измените его как sizeof(fullName), и ваша ошибка исчезнет.

+0

Вместо этого испробовал sizeof, теперь я получаю «буфер слишком мал», вместо этого вместо этого используется «ужас» подобной природы. – Skurt

+1

Итак ... '' Полное имя 'достаточно большое? –

+1

Возможно, вы захотите напечатать 'strlen (name)' и убедитесь, что 'strlen (name) + 14 <50' – user3386109