Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 41

Динамический двумерный массив (malloc, new)

23.02.2015, 20:50. Показов 2362. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как правильно записать нахождение суммы по строкам используя операторы malloc и new.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*9. Дан двумерный массив из 5 строк и 6 столбцов. Определить, какая строка массива имеет
максимальную сумму элементов (считать, что строк с одинаковой суммой нет).*/
 
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <ctime>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h.>
 
int main(int argc, char* argv[])
{
    srand(time(0));
    setlocale(LC_ALL, "Russian");
    int N, M;
    int** a;
    int* sum;
    int max = 0, i, j;
 
    printf("\n Введите кол-во строк: ");
    scanf("%d", &N);
    printf(" Введите кол-во столбцов: ");
    scanf("%d", &M);
 
    a = (int**)malloc(N*sizeof(int*));
    for (int i = 0; i < N; i++)
        a[i] = (int*)malloc(M*sizeof(int));
 
    sum = (int*)malloc(N*sizeof(int));
 
    printf("\n");
 
    /*
    a = new int*[N];
    for (int i=0; i<N; i++)
    a[i] = new int [M];
 
    sum = new int [N];
    */
 
    for (i = 0; i < N; i++)
    {
        sum[i] = 0;
        for (j = 0; j<M; j++)
        {
            a[i][j] = rand()% 10 - 5;
            printf("%2d ", a[i][j]);
        }
        printf("\n");
    }
 
    //--------------------------------------------------
    for (i = 0; i < N; i++) //не правильно при malloc u new
    for (j = 0; j < M; j++)
        sum[i] += a[i][j];
    //---------------------------------------------------
    
    printf("\n Сумма массива: ");
    for (i = 0; i < N; i++)
        printf(" %d,", sum[i]);
 
    int number;
    for (i = 0; i < N; i++)
    if (sum[i] > max)
    {
        max = sum[i];
        number = i + 1;
    }
    
    printf("\n\n Максимальная сумма: %d, номер строки: %d ", max, number);
 
    /*delete []sum;
 
    for(int i=0; i<N; i++)
    delete []a[i];
 
    delete []a;
    */
 
    free(sum);
 
    for (int i = 0; i<N; i++)
        free(a[i]);
 
    free(a);
 
    _getch();
    return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.02.2015, 20:50
Ответы с готовыми решениями:

Как создать динамический двумерный массив с использованием функции malloc?
Я создаю динамический двумерный массив вот так: int **arr = (int**)malloc(m*sizeof(int*)); //объявление матрицы на экран ...

Malloc и двумерный массив
Всем добрый день. Прошу помощи в коде. Пытаюсь создать двумерный массив в динамической памяти. Если делать одномерный, то всё ок. А если...

Реализовать динамический массив структур, используя malloc
У меня возникла проблема, в курсовике нужно сделать реализацию чисел с помощью динамического массива структур. Не понимаю, как его...

3
28 / 28 / 5
Регистрация: 23.04.2014
Сообщений: 130
23.02.2015, 23:13
underwa1er, в чём проблема-то?
0
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 41
25.02.2015, 06:37  [ТС]
Преподаатель сказал, что в одном месте код не правельный (выделил в коде) при malloc и new. Надо исправить. Если кто знает как, исправьте.
0
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
25.02.2015, 09:19
Лучший ответ Сообщение было отмечено underwa1er как решение

Решение

malloc тут только при том, что Вы забыли обнулить массив sum
Кстати, а почему не пройдетесь отладчиком?
Сразу бы увидели, что в sum[i] записано не то.
https://www.cyberforum.ru/cpp-... 62479.html
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.02.2015, 09:19
Помогаю со студенческими работами здесь

MALLOC Создать двумерный массив структур
Доброго времени суток. Есть структура struct books { char* title; }; Как с помощью malloc создать двумерный массив? ...

Выделить память под двумерный массив за один вызов функции malloc
Выделить память под двумерный массив за один вызов функции malloc Если можно - с комментариями

Двумерный динамический массив
Необходимо ввести с клавиатуры количество строк и столбцов массива(матрица размером N*M), ввести исходные данные. Удалить столбец матрицы,...

Двумерный динамический массив
Здравствуйте, подскажите пожалуйста где ошибка? реализовал 2 фукнции ввода и вывода массива. #include &lt;iostream&gt; #include...

Динамический двумерный массив
Здравствуйте, начал недавно учить с++, смотрю видеоуроки. Дошел до этой темы и столкнулся с проблемой... программа не хочет принимать ввод,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru