Форум программистов, компьютерный форум, киберфорум
Наши страницы

Перевод из статического массива в динамический. (двумерный) - 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....
IP адреса. C++
Ребят всем привет.Требуется прочитать из реестра i все ip адреса компьютера. С этим проблем нет,но в разделе services лежит 5 ключей и в каждом из них есть ip-ки.Нулевые надо тоже брать?
C++ Вести данные в таблицу№2. Вывести информацию на экран с запросом http://www.cyberforum.ru/cpp-beginners/thread396791.html
Доброе время суток. Недавно начал изучать в ВУЗе С++, и как обычно больше 70% понять не могу. Можете помочь с прогой Вести данные в таблицу№2. Вывести информацию на экран с запросом ...
C++ Вычислить поверхность, объем тел Пожалуйста, помогите мне сделать программу Вычислить поверхность, объем тел следующим образом: 1)цилиндр 2)Шар 3)куб 4)Прямоугольный параллелепипед Программа будет включать в себя выбор... подробнее

Показать сообщение отдельно
soon
2542 / 1307 / 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;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.