フォーマット文字列の欠落に加えて、他にもいくつかの問題がありました。
char* key;
key = malloc(100); // Don't cast return value of malloc in C
// Always check if malloc fails
if(key) {
memset(key, '\0' , 100 * sizeof(char));
const char * skey = "844607587"; // Use const with constant strings
const char * mess = "hello world";
// sprintf requires format string like printf
// Use snprintf instead of sprintf to prevent buffer overruns
snprintf(key, 100, "%s%s", skey, mess);
printf("%s", key);
free(key);
}
編集:
のバージョンcalloc
は、置き換えmalloc
て削除しmemset
ます:
key = calloc(100, sizeof(char));
if(key) {
const char * skey = "844607587";