There are functions in C for allocating memory malloc and realloc . So I quickly sketched the code:
char *test; test = (char *)malloc(sizeof(char) * 2); // По идеи я выделил место под 2 символов char strcpy(test, "Hello world"); // Тут я записал Hello world хотя я выделил место всего под 2 символа printf("%d", sizeof(test)); // Тут мне показывает 8, что это за 8, откуда оно взялось ? test = (char *)realloc(test, sizeof(char) *4); // Добавляем еще место под 4 символа ( непонятно зачем правда, потому что Hello World как-то записалось хотя я выделил всего место под 2 символа printf("%d", sizeof(test)); // Выводится 8, опять 8..откуда? free(test); Can you please explain how this works in general? Maybe I do not understand something.
sizeof(char)by definition equal to 1 - αλεχολυτ