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

Почему не работает 2-мерный массив с выделением памяти? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать тип данных, содержащих описание товара: http://www.cyberforum.ru/cpp-beginners/thread832945.html
Создать тип данных, содержащих описание товара: код, наименование, цена за единицу товара, количество, общая стоимость. Организовать поиск товара, общая стоимость которого лежит в диапазоне от А до В (А и В вводятся с клавиатуры).
C++ Строки. Поменять местами первое и последнее слово Заполнить одномерный массив символами, введенными с клавиатуры. Поменять местами первое и последнее слово. Результат вывести на экран. http://www.cyberforum.ru/cpp-beginners/thread832942.html
потокобезопасность C++
Интересно узнать что нужно и не нужно синхронизировать при доступе из разных потоков, например понятно что доступ к глобальным переменным нужно синхронизированть, а вот функции например, которые не используют глобальных переменных можно ли вызывать без блокировок в разных потоках?, использовать глобальные дескрипторы в разных потоках или создавать свои и тд. Понимаю что вопрос зависит от того с...
не пойму почему получаются такие значения углов, подскажите как исправить пожалуйста C++
не пойму почему получаются такие значения углов треугольника, помогите исправить пожалуйста lb_1_oop_sam.h #ifndef lb_1_oop_sam_h #define lb_1_oop_sam_h //Структура "треугольник" class triangle { struct point {
C++ Книги НЕ на научном языке по C++ http://www.cyberforum.ru/cpp-beginners/thread832925.html
Собственно название темы говорит само за себя. Дайте, пожалуйста, название книг по C++ для начинающих, не на научном языке (лучше, чтобы эти книги были написаны русскими). Заранее спасибо!
C++ не пойму почему получаются такие значения углов, подскажите как исправить пожалуйста не пойму почему получаются такие значения углов, помогите исправить пожалуйста lb_1_oop_sam.h #ifndef lb_1_oop_sam_h #define lb_1_oop_sam_h //Структура "треугольник" class triangle { struct point { подробнее

Показать сообщение отдельно
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 21:04
Цитата Сообщение от programina Посмотреть сообщение
MCKLAS, а не знаете что означает это:
C++
int **t = (int**)new int[2][2];
в одном учебнике написано, что это выделение памяти под двумерный массив
Сначала объявляется указатель второго порядка **t,который ссылается на двумерный массив int[2][2].
Вам нужно сначала выделить память под массив указателей:
C++
1
float **ptrarray = new float* [2];
А потом для каждой строки массива выделить к примеру 5 элементов:
C++
1
2
for (int count = 0; count < 2; count++)
        ptrarray[count] = new float [5]; // и пять столбцов
Удаление:
C++
1
2
3
4
// высвобождение памяти отводимой под двумерный динамический массив:
    for (int count = 0; count < 2; count++) 
        delete [] ptrarray[count];
//      где 2 – количество строк в массиве
Добавлено через 7 минут
Можно сделать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
int main()
{
    int **t = (int**)new int[2][2];
    
    for (int count = 0; count < 2; count++)
        t[count] = new int [5]; // и пять столбцов
    t[0][0] = 1;
    t[0][1] = 2;
    t[1][0] = 3;
    t[1][1] = 4;
    //не работает
    //t[2][0] = 1;
    //t[2][1] = 1;
    cout << t[0][0] << " " << t[0][1] << endl;
    cout << t[1][0] << " " << t[1][1] << endl;
    system("pause");
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru