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

функция для создания двухмерного массива - C++

Восстановить пароль Регистрация
 
Vetos
 Аватар для Vetos
4 / 4 / 0
Регистрация: 22.09.2009
Сообщений: 51
02.05.2010, 13:10     функция для создания двухмерного массива #1
Здравствуйте!!!
у меня такая проблема. Есть
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 );
создается только верхний уровень, помогите пожалуйста!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2010, 13:10     функция для создания двухмерного массива
Посмотрите здесь:

C++ Использованием классов для создания массива
Выделение памяти для двухмерного массива внутри функции C++
C++ Создать функцию для создания динамического массива
Найти среднее арифметическое элементов для каждой строки заданного двухмерного массива C++
C++ Функция для ввода двухмерного динамического массива
C++ c++, функция для двухмерного массива
C++ Пользовательская функция для создания/открытия файла
C++ Использование переменной для создания статического массива
C++ Memset для двухмерного массива
C++ Есть ли в OpenGL функция для создания главного меню?
C++ Какой тип использовать для создания рекрсивного массива
Как выделить память для двухмерного массива? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
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;
}
Vetos
 Аватар для Vetos
4 / 4 / 0
Регистрация: 22.09.2009
Сообщений: 51
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".

хелп
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
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];
}
GAME
 Аватар для GAME
23 / 23 / 3
Регистрация: 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);
Vetos
 Аватар для Vetos
4 / 4 / 0
Регистрация: 22.09.2009
Сообщений: 51
02.05.2010, 15:10  [ТС]     функция для создания двухмерного массива #6
Все спасибо большое!!! во я лошара цикл написал:
C++
1
for(int i=0; i>10;i++)
Yandex
Объявления
02.05.2010, 15:10     функция для создания двухмерного массива
Ответ Создать тему
Опции темы

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