1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
1

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

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

Как создать функцию в другом заголовочном файле, которая будет создавать двумерный динамический массив.
входящие параметры такие (имя массива,переменная кол ва строк,перемен кол ва столбов)
функция сама просит ввести данные "переменная кол ва строк,перемен кол ва столбов" и затем эти пременные можно использ в мэйне(я так понимаю через указатель)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2013, 00:45
Ответы с готовыми решениями:

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

Метод-член класса для создания одномерного массива из отрицательных элементов двумерного динамического массива
Помогите, пожалуйста, нужно разработать метод-член класса для создания одномерного массива из...

Нужно написать функцию для изменения двухмерного динамического массива
Нужно двумерном динамическом массиве отсортировать строки в порядке возрастания их максимальных...

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

11
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
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;
    };
0
4004 / 3266 / 914
Регистрация: 25.03.2012
Сообщений: 12,201
Записей в блоге: 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
0
Эксперт С++
177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
28.02.2013, 08:09 4
А еще лучше - не создавать такой функции
0
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
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
28.02.2013, 15:03 6
Цитата Сообщение от 13oops13 Посмотреть сообщение
C++
1
void creat(int**mas,int* numr,int* numcol)
зачем передавать кол-во строк и столбцов по адресу? ты же их не меняешь, передвай по значению, если ты хочешь создать двумерный массив внутри функции, то тебе надо или не передавать указатель а создать внутри и просто его вернуть, или передать что то вроде int**& и используя его ему присвоить значение, которое тебе вернет оператор new
1
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
28.02.2013, 15:08  [ТС] 7
просто количество строк и столбцов определяется в функции, но потом в главной функции их тоже надо использовать
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
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;
}
1
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
28.02.2013, 15:26  [ТС] 9
Цитата Сообщение от aLarman Посмотреть сообщение
int**&mas
а передать как тогда массив ? так же??7 creat(mas,....)
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
28.02.2013, 15:49 10
угу Вы совершенно правы
1
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
01.03.2013, 00:48  [ТС] 11
а пояснение можно вот про это int**&mas
это что то типа 2-ного указателя на адрес?????
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
04.03.2013, 10:59 12
ссылка на 2ой указатель, что бы можно было менять его значение(указателя) внутри функции, или так называемая передача параметра по ссылке
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2013, 10:59
Помогаю со студенческими работами здесь

Создания динамического массива
Народ у меня есть задача на подсчет суммы всех элементов одномерного динамического массива . Я знаю...

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

QList создания динамического массива
Привет Всем! У меня есть вот такой кусочек кода QList&lt;QString&gt; list Как задать динамически...

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

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

Написать программу создания динамического массива
Написать программу создания динамического целочисленного массива. Заполнить его случайными...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru