Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
#1

Создать функцию для создания динамического массива - C++

28.02.2013, 00:45. Просмотров 882. Ответов 11
Метки нет (Все метки)

Как создать функцию в другом заголовочном файле, которая будет создавать двумерный динамический массив.
входящие параметры такие (имя массива,переменная кол ва строк,перемен кол ва столбов)
функция сама просит ввести данные "переменная кол ва строк,перемен кол ва столбов" и затем эти пременные можно использ в мэйне(я так понимаю через указатель)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2013, 00:45     Создать функцию для создания динамического массива
Посмотрите здесь:

Реализовать и протестировать функцию создания двумерного динамического массива - C++
Ребята , помогите решить задачу : Реализовать и протестировать функцию создания двумерного динамического массива. Функция должна иметь...

Создать класс для реализации динамического массива - C++
Доброго времени суток! Помогите создать класс который реализует динамический массив(с динамическим выделением памяти и перевыделением),...

Написать функцию для создания массива записей со сведениями о студентах - C++
Определить средний возраст студентов n курса. знаю, что мало кто сможет помочь, что нет даже начального кода, но беда полнейшая... ...

Разработать программу создания динамического массива с использованием функций - C++
Разработать программу создания массива с использованием функций Элементы матрицы заполняются псевдослучайными числами. В программе...

Передача динамического массива в функцию - C++
Помогите разобраться, не могу понять где ошибка. Отлаживал, программа "вываливается" при вызове функции освобождения памяти #include...

Передача динамического массива в функцию - C++
void create_matrix(float **matr,float * mass,int n1); ....................................................................... void...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
28.02.2013, 01:15     Создать функцию для создания динамического массива #2
C++
1
2
3
4
5
6
7
8
int ** alloc_matr (int _row, int _col){
    //1. создаем массив,где будем хранить указатели на массивы строк
    int **a=new int *[_row];
    //2. выделяем память под каждую строку массива
    for (int i=0; i<_row; i++)
            a[i]=new int[_col]; 
    return a;
    };
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
28.02.2013, 02:17     Создать функцию для создания динамического массива #3
C++
1
2
3
4
5
6
7
int ** alloc_matr (int _row, int _col){
    int **a=new int *[_row];
    a[0]=new int[_row*_col];
    for (int i=1; i<_row; i++)
            a[i]=a[i-1]+col;
    return a;
};
Добавлено через 2 минуты
Цитата Сообщение от 13oops13 Посмотреть сообщение
Как создать функцию в другом заголовочном файле
Лучше в заголовочных файлах писать только прототипы функций,
иначе, если этот файл будет включён в несколько *.срр файлов проекта, получишь ошибку
Linker Error: alloc_matr already defined in xxx.obj
ITcrusader
Эксперт C++
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
28.02.2013, 08:09     Создать функцию для создания динамического массива #4
А еще лучше - не создавать такой функции
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
28.02.2013, 12:52  [ТС]     Создать функцию для создания динамического массива #5
эмм......
C++ (Qt)
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
// easyClass.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <time.h>
void creat(int**mas,int* numr,int* numcol)
{
    printf("enter row and kol");
    scanf("%d %d",numr,numcol);
    mas=new int*[*numr];
    for(int i=0;i<*numr;i++)
        mas[i]=new int[*numcol];
}
void del(int**mas,int*numr)
{
    for(int i=0;i<*numr;i++)
        delete []mas[i];
    delete[]mas;
}
void ran(int**mas,int *numr,int*numc)
{
    srand(time(NULL));
    for(int i=0;i<*numr;i++)
    {
        for(int j=0;j<*numc;j++)
        {
            mas[i][j]=rand()%20;
            printf(" %3d ",mas[i][j]);
        }
        printf("\n");
    }
}
void _tmain(int argc, _TCHAR* argv[])
{
    int **mas,row,col;
    creat(mas,&row,&col);
    ran(mas,&row,&col);
    del(mas,&row);
}
что то типа этого(функции я потом сам в заголовочный файл закину)
надо исправить функцию creat
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
28.02.2013, 15:03     Создать функцию для создания динамического массива #6
Цитата Сообщение от 13oops13 Посмотреть сообщение
C++
1
void creat(int**mas,int* numr,int* numcol)
зачем передавать кол-во строк и столбцов по адресу? ты же их не меняешь, передвай по значению, если ты хочешь создать двумерный массив внутри функции, то тебе надо или не передавать указатель а создать внутри и просто его вернуть, или передать что то вроде int**& и используя его ему присвоить значение, которое тебе вернет оператор new
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
28.02.2013, 15:08  [ТС]     Создать функцию для создания динамического массива #7
просто количество строк и столбцов определяется в функции, но потом в главной функции их тоже надо использовать
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
28.02.2013, 15:11     Создать функцию для создания динамического массива #8
упс не то скопировал,
Цитата Сообщение от 13oops13 Посмотреть сообщение
C++
1
void ran(int**mas,int *numr,int*numc)
и остальные

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void creat(int**&mas,int* numr,int* numcol)
{
    printf("enter row and kol");
    scanf("%d %d",numr,numcol);
    mas=new int*[*numr];
    for(int i=0;i<*numr;i++)
        mas[i]=new int[*numcol];
}
или 
int ** creat(int* numr,int* numcol)
{
    printf("enter row and kol");
    scanf("%d %d",numr,numcol);
    mas=new int*[*numr];
    for(int i=0;i<*numr;i++)
        mas[i]=new int[*numcol];
return mas;
}
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
28.02.2013, 15:26  [ТС]     Создать функцию для создания динамического массива #9
Цитата Сообщение от aLarman Посмотреть сообщение
int**&mas
а передать как тогда массив ? так же??7 creat(mas,....)
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
28.02.2013, 15:49     Создать функцию для создания динамического массива #10
угу Вы совершенно правы
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
01.03.2013, 00:48  [ТС]     Создать функцию для создания динамического массива #11
а пояснение можно вот про это int**&mas
это что то типа 2-ного указателя на адрес?????
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2013, 10:59     Создать функцию для создания динамического массива
Еще ссылки по теме:

Передача в функцию динамического массива - C++
Всем привет. Есть, например, функция, работающая с динамическим массивом. Допустим я заполняю этот массив нулями. Далее я передаю его в...

Передача динамического массива в функцию - C++
У меня задача передать в функцию в качестве параметра динамический 2-хмерный массив и получить результат. Тупо возвращать как результат...

Передача динамического массива в функцию - C++
Скажите пожалуйста, почему при передаче динамического массива в функцию, адрес локальной переменной (b) отличается от адреса исходной...

Передача динамического массива в функцию - C++
Нужно передать динамический массив в функцию, описав как ссылку (&amp;p). Но я не понимаю, как к нему обращаться в функции.


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

Или воспользуйтесь поиском по форуму:
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
04.03.2013, 10:59     Создать функцию для создания динамического массива #12
ссылка на 2ой указатель, что бы можно было менять его значение(указателя) внутри функции, или так называемая передача параметра по ссылке
Yandex
Объявления
04.03.2013, 10:59     Создать функцию для создания динамического массива
Ответ Создать тему
Опции темы

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