• Открыта запись на вторую часть курса по анонимности и безопасности в сети интернет "Paranoid II" от команды codeby. Анонимные роутеры, Подъём, настройка и администрирование Tor-ноды, Работа с железом ПК, Удаление аппаратных закладок, Минимизация рисков, Авторские разработки и многое другое. Подробнее ...

Массивы и память

  • Автор темы Kirill_d_class
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

Kirill_d_class

Допустим, я пишу :

...
int N;
int *q;

clrscr();
cout << "\nN=";
cin >> N;
q = new int [N];
enter_mas(&N, q);
...

а в функции enter_mas принмаю параметры таким образом:

void enter_mas(int *n, int A[])
{
int i, No;
...

Не увеличится ли объём памяти, динамически веделенный в куче из-за
входного безразмерного массива A[](???

Спасибо.
 
A

AlexGin

Нет, не должен увеличиваться:

в общем-то для выходного кода
(от компилятора) все равно как писать:

1)
void enter_mas(int *n, int A[])
{
int i, No;

2)
void enter_mas(int *n, int *A)
{
int i, No;

Лично я предпочитаю (для C & C++)
второй вариант - я сразу же вижу по коду,
что в функцию передается указатель.

В языках C и C++ массивы представляются
при помощи указателей.


Что же касается выделенной памяти - ее размер
будет одинаков (q = new int [N]) и определяется как
sizeof(int)*N.

Главное - чтобы в теле enter_mas не было выхода за N...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:  ТелеграмВконтактеДзенФейсбукТвиттерЮтуб