Из моего понимания C кажется, что вы должны использовать malloc (размер) всякий раз, когда пытаетесь инициализировать, например, массив, размер которого вы не знаете до времени выполнения.
Но ямне было интересно, почему функция malloc () возвращает указатель на местоположение переменной и зачем вам это вообще нужно.
По сути, почему C не прячет все это от вас,так что всякий раз, когда вы делаете что-то вроде этого:
// 'n' gets stdin'ed from the user
...
int someArray[n];
for(int i = 0; i < n; i++)
someArray[i] = 5;
, вы можете сделать это без необходимости вызова malloc () или какой-либо другой функции?Другие языки делают это так (полностью скрывая свойства / местоположение памяти)?Я чувствую, что, как новичок, весь этот процесс работы с расположениями в памяти переменных, которые вы используете, просто сбивает с толку программистов (и поскольку другие языки не используют его, C, кажется, делает простой процесс инициализации, такой как этот, чрезмерно сложный) ...
По сути, я пытаюсь спросить, почему malloc () даже необходим, потому что язык не заботится обо всем этом для вас внутренне, без необходимости заботиться о программисте илиувидеть память.Спасибо
* edit: Хорошо, возможно, есть некоторые версии C, о которых я не знаю, которые позволяют вам отказаться от использования malloc (), но давайте попробуем проигнорировать это сейчас ...