Я пытаюсь разобраться в C. Читая K&R, я щелкаю туда-сюда, пытаясь найти, где в нем указаны ситуации, в которых я должен динамически получать блоки памяти.
Например, я хочу иметь указатель int.
int *pointer;
Но затем K&R заявляет, что я могу захотеть сделать:
int *pointer;
pointer = (int*)malloc(sizeof(int));
По сути, что я сделал здесь по-другому? В первом случае я создал указатель, который еще ни на что не указывает, поэтому я думаю, что если у компьютера закончится память, и я попытаюсь указать на значение int, у меня возникнут проблемы. Второй случай резервирует место для моего указателя. Поэтому мне не нужно беспокоиться о том, что у моей программы столько проблем с памятью. Это верно? Если это правильно, не должен ли я использовать malloc (или calloc) для каждого создаваемого указателя? Просто чтобы убедиться, что у моей программы меньше проблем?