Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
4 / 4 / 0
Регистрация: 22.09.2009
Сообщений: 69
1

Функция для создания двухмерного массива

02.05.2010, 13:10. Просмотров 1013. Ответов 5
Метки нет (Все метки)

Здравствуйте!!!
у меня такая проблема. Есть
C++
1
char ** ngBoard
, есть
C++
1
2
3
4
5
6
void NewBoard(char ** Board)
{
      Board = new char*[10];
      for (int i=0; i<10; i++)
           Board[i] = new char[10];
}
но почемуто функция не создает в памяти массив по передаваемой ссылке, т.е. ссылка пустая и при обращении идет ошибка.

Пробовал так:
C++
1
2
3
4
5
6
7
8
void NewBoard(char *** Board)
{
      *Board = new char*[10];
      for (int i=0; i<10; i++)
           *Board[i] = new char[10];
}
 
NewBoard( &ngBoard );
создается только верхний уровень, помогите пожалуйста!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2010, 13:10
Ответы с готовыми решениями:

c++, функция для двухмерного массива
написать функцию, проверяющую есть ли отрицательные элементы в указанной строке двумерного массива....

Функция для ввода двухмерного динамического массива
Поправьте, что не так! void input (int **a = new int, int n) { for(int i=0;i&lt;n; i++) ...

Функция: вывод двухмерного массива
помогите с функцыей вывода двухмерного массива немогу розобратса с параметрами

Memset для двухмерного массива
int g_iArray; memset( g_iArray, 0, sizeof( g_iArray) ); Верно ли ?

5
1257 / 795 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
02.05.2010, 13:17 2
C++
1
2
3
4
5
6
7
template<class T>
long mx_Inew(T***ptr,int H,int W){
    T **matrix = new T*[H];
        for(int i=0;i<H;i++)matrix[i]=new T[W];   
        *ptr = matrix;
return 0;
}
0
4 / 4 / 0
Регистрация: 22.09.2009
Сообщений: 69
02.05.2010, 14:35  [ТС] 3
А как потом эту функцию вызывать??

Добавлено через 53 минуты
если вызывать так
C++
1
    NewBoard( &pngBoard );
то происходит тоже самое что и с таким вариантом:
C++
1
2
3
4
5
6
7
8
void NewBoard(char *** Board)
{
      *Board = new char*[10];
      for (int i=0; i<10; i++)
           *Board[i] = new char[10];
}
 
NewBoard( &ngBoard );
может чет не так делаю но вот ошибки:
Первый этап обработки исключения в "0x0041adef" в "Corners3D 0.1.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcdcdcd".
Необработанное исключение в "0x0041adef" в "Corners3D 0.1.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcdcdcd".

хелп
0
1257 / 795 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
02.05.2010, 14:53 4
У меня так все работает:
C++
1
2
3
4
5
6
7
#include <iostream.h>
void main(){
int **matrix = NULL;
mx_Inew(&matrix,3,3);
matrix[0][0] = 2;
cout<<matrix[0][0];
}
0
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
02.05.2010, 15:09 5
Vetos, ну тут у вас, много что не совсем так,как нужно.
C++
1
2
3
4
5
6
7
char ** NewBoard(char ** Board)
{
      Board =(char **) new char[10];
      for (int i=0; i<10; i++)
           Board[i] = new char[10];
      return Board;
}
Сам вызов функции
C++
1
2
3
char **ppp;
ppp=NULL;
ppp= NewBoard(ppp);
0
4 / 4 / 0
Регистрация: 22.09.2009
Сообщений: 69
02.05.2010, 15:10  [ТС] 6
Все спасибо большое!!! во я лошара цикл написал:
C++
1
for(int i=0; i>10;i++)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.05.2010, 15:10

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

Рекурсивная функция создания последовательности из массива
Задан массив целых чисел. Построить из них любую последовательность таким образом, чтобы последняя...

Выделение памяти для двухмерного массива
Здрасьте! Есть следующий код: float **Matrix = new float*; for(int i = 0;...

Переделать код для динамического и двухмерного массива
Есть код, нужно его переделать для динамического и двухмерного массива и добавить возможность не...

Как выделить память для двухмерного массива?
Как выделить память для двухмерного массива в С++ a=new int???


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

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

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