Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
6 / 6 / 1
Регистрация: 12.06.2011
Сообщений: 80
1

Создать массив заданной размерности с помощью функции и указателей

04.01.2013, 20:29. Просмотров 1928. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <conio.h>
using namespace std;
void z(int *p){
     int a[*p];
     for (int p=a;p<a+*(p-1);p++){
         a[*p]=*p;
         cout << a[*p] << endl;
         }
     
     
     }
 
int main ()
{
    setlocale(0,"");
    int a;
    cout << "Введите значение переменно": ;
    cin >> a;
    z(&a);
    
    getch();
    
    }
Хочу написать программу, которая создаёт массив a- размерности с помощью функции и указателей. В чем ошибка?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.01.2013, 20:29
Ответы с готовыми решениями:

Как создать в файле массив указателей фиксированной размерности на строки текста?
подскажите пожалуйста! есть работающая программа, но реализована она неправильно и я не знаю как...

Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей
Задача: создать специфицированный шаблон функции, принимающей массив указателей на char и...

Различные функции, для которых можно создать массив указателей на функции
Придумайте не менее 3-х различных функций, для которых можно создать массив указателей на функции.

Как создать массив из указателей на функции?
#include &lt;iostream&gt; using namespace std; const int SLEN = 30; struct student { char...

7
погромист
413 / 249 / 30
Регистрация: 27.08.2012
Сообщений: 550
04.01.2013, 20:35 2
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Тоесть вы хотите динамический массив сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main ()
{
    int x;
    cin >> x;
    int* array = new int [x];
    array[0] = 0;
    cout << array[0]; 
    system ("PAUSE");   
    return 0;
}
1
248 / 231 / 45
Регистрация: 05.02.2010
Сообщений: 3,285
04.01.2013, 20:37 3
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int *Create(int *ptr, int size)  {
    ptr = new int[size];
    return ptr;
}
 
void Fill(int *ptr, int size)  {
    for(int i = 0; i < size; i++)  {
        cout << "mas[" << i << "] = ";
        cin >> *(ptr + i);
    }
}
 
void Print(int *ptr, int size)  {
    for(int i = 0; i < size; i++)
        cout << "mas[" << i << "] = " << *(ptr + i) << endl;
    
}
 
 
 
int main ()
{
    setlocale(0,"");
    int a;
    int *massiv = NULL;
    cout << "Введите значение переменно: ";
    cin >> a;
    massiv = Create(massiv, a);
 
    Fill(massiv, a);
    Print(massiv, a);
 
    
    delete []massiv;
    system("pause");
    return 0;
}
1
6 / 6 / 1
Регистрация: 12.06.2011
Сообщений: 80
04.01.2013, 20:47  [ТС] 4
да, только чтобы он заполнялся и выводился в одной функции, с указателями
Цитата Сообщение от coloc Посмотреть сообщение
int* array = new int [x];
что эта строчка означает?
0
248 / 231 / 45
Регистрация: 05.02.2010
Сообщений: 3,285
04.01.2013, 20:50 5
Цитата Сообщение от coloc Посмотреть сообщение
int* array = new int [x];
указателю присваивается кусок памяти под [x] элементов целого типа
1
погромист
413 / 249 / 30
Регистрация: 27.08.2012
Сообщений: 550
04.01.2013, 20:51 6
Оператор new виделяет память в куче. Я забыл в конец кода delete[] написать (сообственно удаляет память)
1
3239 / 2047 / 350
Регистрация: 24.11.2012
Сообщений: 4,896
04.01.2013, 20:58 7
Цитата Сообщение от m1Rr0r Посмотреть сообщение
int *Create(int *ptr, int size) { ptr = new int[size]; return ptr; }
В чем смысл первого аргумента? Пойдем дальше, в чем смысл такой функции?
0
погромист
413 / 249 / 30
Регистрация: 27.08.2012
Сообщений: 550
04.01.2013, 20:59 8
Чтобы больше понять, как работает new, посмотри на обьявление функции malloc (почти аналогично new)
C++
1
2
3
4
void* malloc (size_t size); //size_t = unsigned int
//например
int* p = (int*) malloc (100 * sizeof (int)) //мы выделяем в память 100 элементов по 4 байта каждый (размер инт)
                                                        //и этот указатель указывает на эту область памяти
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2013, 20:59

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Создать массив из указателей которые указывают на функции
Как можно создать массив из указателей которые указывают на функции?

Виртуальные функции (создать массив указателей на объекты трех классов)
Задание: создать массив указателей на объекты трех классов. Метод Show почему-то не...

Создать массив указателей на функции к функциям, которые имеют разное число и типы параметров?
Можно ли создать массив указателей на функции к функциям, которые имеют разное число и типы...

Создать специализацию для шаблона, которая принимает массив указателей на строки и количество этих указателей
Нужно создать специализацию для шаблона, которая принимает массив указателей на строки и количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.