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

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

Kirill_d_class

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

...
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

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

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

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...
 
Статус
Закрыто для дальнейших ответов.