Я хочу точно вызвать 25 байтов памяти. В данном случае msg_len = 5 байт, так как это входные данные. Это код, который у меня есть:
int full_msg_size = 20 + msg_len;
printf("full_msg_size: %d\n", full_msg_size);
void *full_msg = calloc(full_msg_size, sizeof(char));
printf("size of full_msg: %d\n", (int*)sizeof(full_msg));
Вот что распечатывает:
full_msg_size: 25 размер full_msg: 8
Но я хочу, чтобы размер full_msg равнялся 25 байтам, как и full_msg_size.
Я также хочу, чтобы все области памяти были инициализированы нулем.
Может ли кто-нибудь сказать мне, как правильно calloc/malloc?
Спасибо
sizeof(char)
всегда равно1
, поэтому вы можете просто написать 1. - person glglgl   schedule 17.01.2015