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

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

Войти
Регистрация
Восстановить пароль
 
 
jake09
0 / 0 / 0
Регистрация: 20.11.2014
Сообщений: 20
#1

Работа с двухмерным динамеческим массивом через указатель - C++

20.11.2014, 23:07. Просмотров 865. Ответов 22
Метки нет (Все метки)

Натупил здесь наверное сильно, подскажите ребят, а то долго уже сиджу над этим... Где ошибки? Программу компилирует, но потом выбивает.

C
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
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
 int main()
 {
    srand(time(NULL));
    const int size_x = 4, size_y = 5, m = 20;
    int **matrix, i, j, d, n[4] = {1,2,3,4}, s;
    matrix = malloc(m*sizeof(int**));
    for (i = 0; i < size_x; i++)
    {
        for (j = 0; j < size_y; j++)
        {
            matrix[i][j] = (rand() % 20)-10;
            d = fabs(matrix[i][j]);
            if((j+1)==d)
            {
                   s++;
            }
        }
        printf("For line %d number of elements that matched is = %d\n", n[i],s);
        free(matrix);
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2014, 23:07     Работа с двухмерным динамеческим массивом через указатель
Посмотрите здесь:

Работа с массивом структур в функции через указатель на этот массив - C++
Добрый вечер. Имеется следующая задача: &quot;Разработайте программу, сохраняющую записи (порядковый номер ввода, число с плавающей точкой и...

Развлечения с массивом через указатель - C++
Инициализация указателей. Объявите массив, состоящий из 8 элементов типа short int. Объявите указатель на этот массив и присвойте ему...

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

В С++ может ли argv быть двухмерным массивом? - C++
int main(int argc, char *argv) { argv = tolower(argv); argv = tolower(argv); Вот что это означает? Когда у argv с двумя...

Работа с массивом с через strcpy_s() - C++
Функция addBrackets принимает массив и преобразует его заключая в скобки . т.е. на на вход массив: text после преобразования: ...

Работа с массивом через геттер и сеттер - C++
#include &lt;iostream&gt; using namespace std; class My_Class { private: int *p; public: My_Class() { p = new int ;

Работа с массивом через указатели(Определить, строго ли чередуются элементы в массиве) - C++
Задан массив из N элементов, состоящий только из нулей и единиц. Определить, строго ли чередуются элементы в массиве. Программа должна...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3641 / 1916 / 505
Регистрация: 18.10.2014
Сообщений: 3,480
21.11.2014, 05:47     Работа с двухмерным динамеческим массивом через указатель #21
Цитата Сообщение от true_bugmaker Посмотреть сообщение
До сих пор неясно когда же ты явишь нам чудо, выделив и удалив динамический массив без циклов.
Я смотрю, пошло верчение хвостом... Ну-ка и я попробую "Динамический" в терминологии С++ означает - выделенный в динамической памяти. Примеры я уже привел

А теперь серьезнее: ни о каких "динамических массивах" речь не шла. С чего это вдруг? Тема массивов динамического размера была закрыта моей ссылочкой в сообщении #4. Там по ссылочке вы найдете и циклы, и массивы указателей...

А разговор здесь шел о многомерных языковых массивах. Ничего "динамического". Вы же мне сами цитату из стандарта в нос тыкали. Вы ведь понимаете, надеюсь, что в стандарте пишут именно о языковых массивах, а не о ваших доморощенных массивах указателей? Сообщение #8 посмотрите. Где там слово "динамический"?

Цитата Сообщение от true_bugmaker Посмотреть сообщение
А во втором, использовать расширение, не толстовато ли? Почему сразу не либу какую-нибудь?
Ну, ну, ну, опять верчение хвостом пошло... Да, могу и либу! В чем проблема-то? Какое это имеет значение, расширение это или нет, либа это или нет?

Вопрос не в том "либа" ли это, "расширение" ли это, а в том, используют ли они "циклы"TM и "массивы указателей"TM. Вы нам тут распинались, что невозможно создать массив динамического размера без "циклов" и "массивов указателей". Так а как же это удается нашему "расширению"? Это что какое-то волшебное расширение, искажающее саму ткань реальности и делающее невозможное возможным? Или вы считаете, что там в этом "расширении" где-то спрятаны эти "циклы" и "массивы указателей"? Если так, то покажите же нам, где они спрятаны.

P.S. В языке С VLA являются не "расширением", а опциональной фичей, и то опциональной только в компиляторах языка С11. В языке С99 VLA обязательны. В любом случае, это к делу не относится и заниматься дешевым переводом стрелок на посторонние темы я запрещаю.
true_bugmaker
28 / 5 / 1
Регистрация: 18.11.2014
Сообщений: 68
21.11.2014, 06:26     Работа с двухмерным динамеческим массивом через указатель #22
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
А теперь серьезнее: ни о каких "динамических массивах" речь не шла. С чего это вдруг?
С того что обсуждение началось с этого комментария, почему бы и нет?

двумерный динамический массив размерностью (size_x, size_y) следует выделять так, потому что по факту в сях нету двумерных массивов, создаётся одномерный массив из int*, указателей на одномерные массивы int:
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Вы же мне сами цитату из стандарта в нос тыкали. Вы ведь понимаете, надеюсь, что в стандарте пишут именно о языковых массивах, а не о ваших доморощенных массивах указателей? Сообщение #8 посмотрите. Где там слово "динамический"?
Речь шла о том, что массивы в с++ ведут себя иначе, чем просто многомерные массивы, и что динамическое их выделение - одна из особенностей, по которой это заметно. Ты же стал утверждать, в какой-то конкретной или нескольких реализациях для некоторых частных случаев, например для статических многомерных массивов, указатели в явном виде в памяти не располагаются потому что массивы в с++ многомерны, а не потому что в этом частном случае нет никакой надобности располагать в памяти эти указатели, раз уж все адреса извесны на этапе компиляции, неизменяемы и все обращения к ним в этом частнном случае можно заменить на прямые адреса, верно? Или цитат с перовй страницы понадёргать?

Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Какое это имеет значение, расширение это или нет, либа это или нет?
Такое, что оно умышленно скрывает обсуждаемые нами понятия при помощи "синтаксического сахара".

Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Так а как же это удается нашему "расширению"?
Точно так же как удаётся создавать статические на этапе компиляции, тоже без циклов.

Цитата Сообщение от TheCalligrapher Посмотреть сообщение
В любом случае, это к делу не относится и заниматься дешевым переводом стрелок на посторонние темы я запрещаю.
Есть ли у тебя власть запрещать мне что-либо?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2014, 15:47     Работа с двухмерным динамеческим массивом через указатель
Еще ссылки по теме:

лаба по динамеческим структурам данных - C++
Кто знает как сделать????

Не могу разобраться как сделать указатель функции с динамич. массивом - C++
int* mass(int p, int n) { cout &lt;&lt; &quot;Введите размер массива: &quot;; cin&gt;&gt;n; int *p = new int ; for (int i(0); i &lt; n; i ++) { cout &lt;&lt;...

Степень вывести через указатель,a десятичный логарифм через функцию рекуренционную - C++
Написать функции,где 3 натуральных числа a,b,c(a/b-десятичный логарифм).Чтобы степень вывести через указатель,a десятичный логарифм через...

Быстрее ли вывов функции, переданной через параметр шаблона, чем через простой указатель на функцию? - C++
Здравствуйте! Есть два варианта передачи некоторой переменной типа &quot;указатель на функцию&quot; в класс - через параметр шаблона и просто с...

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


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

Или воспользуйтесь поиском по форуму:
jake09
0 / 0 / 0
Регистрация: 20.11.2014
Сообщений: 20
22.11.2014, 15:47  [ТС]     Работа с двухмерным динамеческим массивом через указатель #23
Спасибо ребят, все получилось
Yandex
Объявления
22.11.2014, 15:47     Работа с двухмерным динамеческим массивом через указатель
Ответ Создать тему
Опции темы

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