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

Как представляются двумерные массивы? - C++

Восстановить пароль Регистрация
 
aleksand1
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 2
20.01.2013, 11:11     Как представляются двумерные массивы? #1
Создал двумерный массив. И немного не врубаюсь. Если пиши вот так вот mas[0][2] выводит 0, если вот так вот mas[1][0], то выводит 10. Ну а если вот так вот mas[0][3], то выводит 10. Собственно как я понял, что в случае mas[0][3] мы выходим за границу массива и попадаем на элемент mas[1][0].

Вопрос: всегда в двумерном массиве именно такая последовательность расположения ячеек памяти для массива, что они идут друг за другом?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <math.h>
int main()
{
    int mas[3][3];
 
    for(int i=0;i<3;i++)
        for(int j=0;j<3;j++)
            mas[i][j]=10*i;
 
    printf("%d\n",mas[0][2]);
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2013, 11:11     Как представляются двумерные массивы?
Посмотрите здесь:

Целочисленная арифметика ,Одномерные массивы ,Двумерные массивы C++
двумерные массивы C++
C++ двумерные массивы
C++ Двумерные массивы(массивы указателей на массивы)
C++ двумерные массивы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,045
20.01.2013, 11:16     Как представляются двумерные массивы? #2
Цитата Сообщение от aleksand1 Посмотреть сообщение
Если пиши вот так вот mas[0][2] выводит 0, если вот так вот mas[1][0],
а что это за интересные массивы с 0 размером ты хотел создать??
сам то его представляешь?
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
20.01.2013, 11:20     Как представляются двумерные массивы? #3
Цитата Сообщение от aleksand1 Посмотреть сообщение
всегда в двумерном массиве именно такая последовательность расположения ячеек памяти для массива, что они идут друг за другом?
Да, элементы массива всегда расположены в памяти последовательно, один за другим.
aleksand1
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 2
20.01.2013, 11:21  [ТС]     Как представляются двумерные массивы? #4
Цитата Сообщение от ValeryS Посмотреть сообщение
а что это за интересные массивы с 0 размером ты хотел создать??
сам то его представляешь?
Вы не поняли суть вопроса)) Спасибо gray_fox за внятный ответ.
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,045
20.01.2013, 11:38     Как представляются двумерные массивы? #5
Цитата Сообщение от aleksand1 Посмотреть сообщение
Вы не поняли суть вопроса))
так надо конкретно спрашивать а то

Цитата Сообщение от aleksand1 Посмотреть сообщение
Если пиши вот так вот mas[0][2] выводит 0, если вот так вот mas[1][0],
что значит пищу????
объявляю массив? обращаюсь к элементу ?
вот тебе твой пример немного доработанный
чтобы увидеть как распределится память


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <math.h>
int main()
{
    int mas[3][3];
 
    for(int i=0;i<3;i++)
        for(int j=0;j<3;j++)
            mas[i][j]=10*i+j;
     
  for(int i=0;i<9;i++)
    printf("%d\n",mas[0][i]);
 
    return 0;
}
gray_fox, прав элементы будут друг за другом (хоть стомерный)
поэтому можно обнулить все элементы разом
C++
1
memset(mas,0,sizeof(mas));
Yandex
Объявления
20.01.2013, 11:38     Как представляются двумерные массивы?
Ответ Создать тему
Опции темы

Текущее время: 17:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru