Dynami c vs stati c array - PullRequest
       31

Dynami c vs stati c array

0 голосов
/ 02 мая 2020

Правда ли, что для динамического c выделения памяти: int * ptr = new int [3] требуется больше оперативной памяти, чем для stati c выделения: int ptr [3], поскольку для хранения указателя требуется еще 4 байта?

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Это во многом зависит от ситуации, в которой вы находитесь.

Для выделения dynamici c используется куча, поэтому он должен запрашивать ее у ОС при использовании new. При выделении stati c используется стек, поэтому «запрос» памяти выполняется быстрее, чем динамическое выделение c, выделяемое при запуске программы.

Если вам нужен небольшой массив и вы используете его в простых операциях, для выполнения упражнения более чем достаточно выделения c.

См. : C / C ++ производительность stati c массивов против динамических c массивов

0 голосов
/ 02 мая 2020

По существу, есть разница в производительности, динамическое распределение c использует кучу (чтобы попросить ОС выделить эту память, как только программа вызывает новый оператор) stati c распределение внутри функции (под при некоторых обстоятельствах) используйте стек (предопределенную память), который быстрее выделяется во время выполнения.

...