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

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

Войти
Регистрация
Восстановить пароль
 
Vetos
4 / 4 / 0
Регистрация: 22.09.2009
Сообщений: 67
#1

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

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

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

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

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

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

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

Выделение памяти для двухмерного массива внутри функции - C++
Здравствуйте. Предположим, есть код: #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #include &lt;time.h&gt; using...

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

Пользовательская функция для создания/открытия файла - C++
void CreatOpenFile(Name &amp;NameFile, int &amp;flag) // Создание,открытие файла базы данных { char YorN; flag = 0; cout &lt;&lt; &quot;Введите имя...

Найти среднее арифметическое элементов для каждой строки заданного двухмерного массива - C++
Найти среднее арифметическое элементов для каждой строки заданного двухмерного массива. Значения элементов массива ввести с клавиатуры

Есть ли в OpenGL функция для создания главного меню? - C++
подскажите пожалуйста есть ли в OpenGl функция для создания главного меню и как поменять расширение окна во время работы программы


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1235 / 773 / 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
4 / 4 / 0
Регистрация: 22.09.2009
Сообщений: 67
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
1235 / 773 / 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
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
4 / 4 / 0
Регистрация: 22.09.2009
Сообщений: 67
02.05.2010, 15:10  [ТС]     функция для создания двухмерного массива #6
Все спасибо большое!!! во я лошара цикл написал:
C++
1
for(int i=0; i>10;i++)
Yandex
Объявления
02.05.2010, 15:10     функция для создания двухмерного массива
Ответ Создать тему
Опции темы

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