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

Перевод из статического массива в динамический. (двумерный) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. http://www.cyberforum.ru/cpp-beginners/thread396832.html
Народ добрый, помогите пожалуйста. Пошел учиться на инженера-электрика, а нам информатик зверь какой-то попался. Заставляет писать проги на С++, а у нас группа в нём вообще ни бум-бум. Если в паскале хоть чуть-чуть разбираюсь, то С++ вообще никак. Напишите плз прогу, я думаю она очень легкая для знающих язык. Вот: Написать программу, определяющую сколько раз меняется знак в последовательности...
C++ Почему вместо 2 выводится белеберда? // mamalclass.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <conio.h> class mamal { public: mamal(int itsa,int itsw); http://www.cyberforum.ru/cpp-beginners/thread396823.html
одномерный массив и двухмерный массив C++
Добрый вечер. Конечно же понимаю, что эта тема была рассмотрена уже, но мне нужна помощь... №1 Даны натуральные числа a,h,d. Заполнить 10 действительными числами от 2 до 8 массив b1,b2,...,b10. Вычислить b1+b2*(d-a)+b3*(d-a)*(d-a-h)+b4*(d-a)*(d-a-h)*(d-a-2*h)+...+b10*(d-a)*(d-a-h)......(d-a-8*h) №2 Заполнить одномерный массив X 5-ю случайными числами от -1 до 10. Получить матрицу А вида...
IP адреса. C++
Ребят всем привет.Требуется прочитать из реестра i все ip адреса компьютера. С этим проблем нет,но в разделе services лежит 5 ключей и в каждом из них есть ip-ки.Нулевые надо тоже брать?
C++ Вести данные в таблицу№2. Вывести информацию на экран с запросом http://www.cyberforum.ru/cpp-beginners/thread396791.html
Доброе время суток. Недавно начал изучать в ВУЗе С++, и как обычно больше 70% понять не могу. Можете помочь с прогой Вести данные в таблицу№2. Вывести информацию на экран с запросом "группа,курс" в следующем виде как указано на первом рисунке (не табл 2)
C++ Вычислить поверхность, объем тел Пожалуйста, помогите мне сделать программу Вычислить поверхность, объем тел следующим образом: 1)цилиндр 2)Шар 3)куб 4)Прямоугольный параллелепипед Программа будет включать в себя выбор указанных органов с помощью switch. если можете напи5ите почему, что, -ачем подробнее

Показать сообщение отдельно
soon
2537 / 1302 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
01.12.2011, 22:42     Перевод из статического массива в динамический. (двумерный)
Косяк либо в логике, либо в реализации. Либо так и должно быть.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <iomanip>
 
int main()
{
    const int SIZE = 5;
    int **arr = new int* [SIZE];
    //int arr[SIZE][SIZE];
    for(int i = 0; i < SIZE; ++i)
        arr[i] = new int [SIZE];
    std::cout << &arr[0][0] << std::setw(10) << arr;
    return 0;
}
output
Код
$ ./main
0x9273020 0x9273008

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
 
#define SIZE 5
 
int main(void)
{
    int **arr = (int**) malloc (SIZE * sizeof(int*));
    int i;
    for(i = 0; i < SIZE; ++i)
        arr[i] = (int*) malloc (SIZE * sizeof(int));
    printf("%p\t%p\n", &arr[0][0], arr);
    return 0;
}
output
Код
$ ./main
0x8c16020	0x8c16008

Как видите, адреса arr[0][0] и arr различаются. Поэтому, пожно извернуться примерно так
C++
1
2
3
4
5
6
for(int i = 0; i < SIZE; ++i)
{
    for(int j = 0; j < SIZE; ++j)
        std::cout << std::setw(5) << *(arr[i][0] + j);
    std::cout << std::endl;
}
Или так
C++
1
2
3
4
5
6
for(int i = 0; i < SIZE; ++i)
{
    for(int j = 0, *ptr = &arr[i][0]; j < SIZE; ++j, ++ptr)
        std::cout << std::setw(5) << *ptr;
    std::cout << std::endl;
}
 
Текущее время: 16:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru