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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ 1% от большого числа http://www.cyberforum.ru/cpp-beginners/thread652877.html
Вводится число 10^6<=N<=10^200 Надо вывести 1% от него. Кто-нибудь может это решить, я очень много времени потратил впустую...:ireful:
C++ Используя ООП создать в динамической памяти фигуру, представляющую связный список отдельных объектов (C# или С++) У меня такая проблема, мне в универе дали билет и я должен в С# или С++ нарисовать фигуру которая там дана, используя классы, честно, я пробовал сделать, но я всякий бред писал, я не как не пойму как создавать классы.. Билет прилагается: http://***********/F/s019.***********/i621/1209/48/1e253ebec257.jpg.html Заранее всем спасибо! http://www.cyberforum.ru/cpp-beginners/thread652874.html
C++ выложите пожалуйста библиотеку curllib.lib для windows xp 32 , компилятор MVC 2010
за ранее благодарен не давайте мне ссылку на оф сайт curl я там нашёл только dll и исходники с которых не получилось сделать либу с нормальной таблицей экспорта функций
Компьютерная графика в c++ C++
Помогите пожалуйста написать в с++ такой алгаритм, чтобы рисовать различные фигуры, к примеру прямоугольник.
C++ Помощь в самом языке http://www.cyberforum.ru/cpp-beginners/thread652862.html
Объясните пожалуйста как писать на с++ программы.Всмысле какие нужно писать библиотеки,как написать чтобы компьютер запрашивал значания переменных при решении функции
C++ Неправильно реализовал алгоритм, где допускаю ошибки? Писал прогу по следующим алгоритмам (во вложении), но результаты совершенно разные, хотя решают одну и туже задачу. На С++ пишу 1-й раз, подскажите, где допускаю ошибки. #include "stdafx.h" #include "math.h" #include <iostream> #include <stdio.h> double signum(double a) { подробнее

Показать сообщение отдельно
Topotun
87 / 46 / 7
Регистрация: 16.09.2012
Сообщений: 192
18.09.2012, 02:12     Управление двухмерным массивом из функции
Цитата Сообщение от Gryphon25 Посмотреть сообщение
Ну как же создать функцию, в которую можно передать массив неограниченной размерности? Если создавать указатель на двухмерный массив, то, как я понял, необходимо создать массив указателей и каждой ячейке присвоить указатель на каждую главную ячейку двухмерного массива:
Код C++
1
2
3
4
5
6
7
8
char ss[2][5];
char **us = new char*[sizeof(ss)];
* * for(int i = 0; i < sizeof(ss); i++){
* * * * us[i] = ss[i];
* * }
Нет ли путей короче? Нигде так и не нашёл ответа, просьба помочь.
Как создать функцию, в которую можно передать массив неограниченной размерности? Хм...боюсь Вас расстроить, но этого нельзя сделать НИКАК. потому что массивов неограниченной размерности не бывает в природе. Разработчики языка С++ подумали и решили не делать таких массивов, я слышал, что это из за того, что у нас ограничена оперативная память и другие ресурсы компьютера)
Путей покороче тоже нет, потому что это логически целостный путь создания динамического двумерного массива, то есть, ты сначала создаёшь массив указателей и потом ты инициализируешь каждый указатель указателем.

Сама функция для работы с двумерным динамическим массивом будет примерно такая:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
double f(double **arr, int n) //Данная функция для квадратной матрицы.
{
    for(int i = 0; i < n; i++)
    {
         for(int j = 0; j < n; j++)
         {
               arr[i][j] = 0; //Обнуляем все элементы.
          }
    }
}
 
void main(){
  int n = 10;//Переменную можно запросить у пользователя.
  double **arr = new double*[n];
  for(int i = 0; i < n; i++)
  {
       arr[i] = new double[n];
  }
  f(arr, n);
}
Добавлено через 13 минут
P.S. Любой массив необходимо ограничить. Вопрос в том, что можно это сделать динамически (когда мы заранее не можем знать, какой размерности нам потребуется), либо ограничить непосредственно при разработке программы (например, если мы создаём массив символов и не хотим, что бы было больше 50 символов (например, строка для ввода пароля)). А если же Вы хотите воплотить в жизнь то, о чём я думаю, то вам необходимо каждый раз, при добавлении нового элемента в массив, проверять его на заполненность и если новый введённый символ выходит за границы массива, то неоходимо создать новый массив, который будет размерностью больше предыдущего и скопировать все значения из предыдущего массива в новый массив и потом добавить новый элемент в существующий массив. Впринципе всё легко и просто. Вот так можно приблизиться к "неограниченному массиву" )
 
Текущее время: 20:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru