Пожалуйста, посмотрите на этот кусок кода. Я выделяю один байт для первой переменной и еще один байт для второй. Тем не менее, похоже, что компилятор выделяет больше (или я что-то упустил). Программа выводит обе строки, хотя их длина больше одного байта.
void main() {
char* some1 = malloc(1);
sprintf(some1,"cool");
char* some2 = malloc(1);
sprintf(some2,"face");
printf("%s ",some1);
printf("%s\n",some2);
}
Пожалуйста, кто-нибудь может подсказать, что происходит, когда выделяется память.