Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2015, 20:25   #1
nwhta
Форумчанин
 
Регистрация: 30.08.2013
Сообщений: 153
По умолчанию проблема с передачей указателей на массивы

долблюсь уже пару дней, по книжке учусь и стараюсь писать проги
но тут......сил нет(
подскажите что не так пожалуйста
Код:
#include <stdio.h>
#include <stdlib.h>
#define N 10
int * create_array()
{
    int arr[N];
    int i;
    for(i = 0; i<N; i++)
    {
          printf("Enter a number in idex %d\n", i);
          scanf("%d", &arr[i]);
    }
    return *arr;
}
void show(int * arr)
{
     int i; 
     for(i = 0; i<N; i++)
    {
          printf("%.3d", arr[i]);
    }    
    printf("\n");
}

int main()
{
    int flag = 1;
    int num;
    int *ptr = NULL;
    while(flag)
    {
                printf("1 - to create simple array\n3 - to show an array\n");
                scanf("%d", &num);
                switch(num)
                {           
                case 1: 
                     ptr = create_array();
                     break;
                case 3:
                     show(ptr);
                     break;
                }
                          
    }
    return 0;
}
больше знаю, лучше сплю)
nwhta вне форума Ответить с цитированием
Старый 25.11.2015, 20:50   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
int arr[N];
Нужно
Код:
int *arr=new int[N];
Или
Код:
int *arr=malloc(N*sizrof(int));
Ты ведь возвращаешь массив, так размещай его в куче, а не в стеке.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.11.2015, 12:48   #3
nwhta
Форумчанин
 
Регистрация: 30.08.2013
Сообщений: 153
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Нужно
Код:
int *arr=new int[N];
Или
Код:
int *arr=malloc(N*sizrof(int));
Ты ведь возвращаешь массив, так размещай его в куче, а не в стеке.
спасибо, а где поподробней можно почитать про кучу и стек?
больше знаю, лучше сплю)
nwhta вне форума Ответить с цитированием
Старый 27.11.2015, 13:06   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

М.м.м... Кажется у Кернигана и Риччи были главы в их книгах про это дело...
Вообще по-моему в каждом учебнике есть про кучу главы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.11.2015, 13:44   #5
nwhta
Форумчанин
 
Регистрация: 30.08.2013
Сообщений: 153
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
М.м.м... Кажется у Кернигана и Риччи были главы в их книгах про это дело...
Вообще по-моему в каждом учебнике есть про кучу главы.

Спасибо большое Вам!
больше знаю, лучше сплю)
nwhta вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с передачей значений ins813 БД в Delphi 1 08.08.2015 16:56
C/C++ проблема с передачей ДМУ Akkoks Общие вопросы C/C++ 3 12.06.2011 13:43
Проблема с передачей( фтпуд17 Свободное общение 5 27.01.2011 11:23
Проблема с передачей файла BleStaR C++ Builder 1 15.02.2010 20:37
Проблема с передачей куки arwm Работа с сетью в Delphi 7 28.12.2007 23:44