Первый аргумент sprintf
должен указывать на допустимый буфер.У вас есть char*
, но он указывает на мусор.
Измените ваш код на:
char numString[80] = { };
int charcheck = sprintf(numString, "%d", numCheck);
, чтобы numString
фактически указывал на действительный буфер (из 80 символов в этом примере, все элементы которого инициализированы в 0).
Было бы также хорошо использовать snprintf
, чтобы вы могли передать ему размер вашего буфера, что поможет предотвратить переполнение буфера:
const int bufsize = 80;
char numString[bufsize] = { };
int charcheck = snprintf(numString, bufsize - 1, "%d", numCheck);
Обратите внимание, что вы вычитаете единицу из размера буфера, который вы передаете snprintf
, потому что вы не хотите, чтобы он использовал самый последний слот, который вы должны убедиться, что NULL
обозначает конецстрока.