У меня есть следующая программа, которая рушится. Кто-нибудь знает, почему он рушится?Использование sizeof в C
/* writes a, b, c into dst
** dst must have enough space for the result
** assumes all 3 numbers are positive */
void concat3(char *dst, int a, int b, int c) {
sprintf(dst, "%08x%08x%08x", a, b, c);
}
/* usage */
int main(void) {
printf("The size of int is %d \n", sizeof(int));
char n3[3 * sizeof(int) + 1];
concat3(n3, 0xDEADFACE, 0xF00BA4, 42);
printf("result is 0x%s\n", n3);
return 0;
}
Каждый раз, когда вы используете 'sprintf', я убить котенка. –
Это C или C++?Это не тот же язык. –
Этот вопрос является продолжением вопроса [Создание уникального номера] (http://stackoverflow.com/q/4143473/25324) на том же плакате. – pmg