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

Тема в разделе "C и С++ FAQ", создана пользователем Kirill_d_class, 14 апр 2004.

Статус темы:
Закрыта.
  1. Kirill_d_class

    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[](???

    Спасибо.
     
  2. AlexGin

    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...
     
Загрузка...
Похожие Темы - Массивы память
  1. Искушенный
    Ответов:
    0
    Просмотров:
    432
  2. Искушенный
    Ответов:
    1
    Просмотров:
    421
  3. Искушенный
    Ответов:
    1
    Просмотров:
    391
  4. Rpp
    Ответов:
    1
    Просмотров:
    811
  5. romanovbadboy2
    Ответов:
    0
    Просмотров:
    669
Статус темы:
Закрыта.

Поделиться этой страницей