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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
aleksand1
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 2
#1

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

20.01.2013, 11:11. Просмотров 246. Ответов 4
Метки нет (Все метки)

Создал двумерный массив. И немного не врубаюсь. Если пиши вот так вот 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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2013, 11:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как представляются двумерные массивы? (C++):

Динамические двумерные массивы через указатели. Как это происходит? - C++
Вот типичная идентификация двумерного массива (NxM): int** mass = new int*; for(i=0; i&lt;N; i++) mass = new int; Помогите...

двумерные массивы - C++
Составить программу обмена местами максимального и минимального элементов главной диогонали матрицы 4x4. зарание спасибо!

Двумерные массивы - C++
Никогда особо раньше не занимался программирование,больше как то математикой.И вот на первом курсе стали изучать язык Си на лекциях.На...

Двумерные массивы - C++
Помогите люди добрые:) Дана целочисленная прямоугольная матрица, определить: 1) Кол-во отрицательных эл-тов тех строк, которые содержат...

Двумерные массивы в С++ - C++
Написать программу, которая дает пользователю ввести 5 фамилий студентов, а затем находит среди них самую длинную фамилию. Все фамилии...

Двумерные массивы. - C++
Помогите решить задачку!!!!!! Дана действительная квадратная матрица порядка 2N. Подучить новую матрицу, переставляя ее блоки размера N х...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
20.01.2013, 11:16 #2
Цитата Сообщение от aleksand1 Посмотреть сообщение
Если пиши вот так вот mas[0][2] выводит 0, если вот так вот mas[1][0],
а что это за интересные массивы с 0 размером ты хотел создать??
сам то его представляешь?
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
20.01.2013, 11:20 #3
Цитата Сообщение от aleksand1 Посмотреть сообщение
всегда в двумерном массиве именно такая последовательность расположения ячеек памяти для массива, что они идут друг за другом?
Да, элементы массива всегда расположены в памяти последовательно, один за другим.
1
aleksand1
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 2
20.01.2013, 11:21  [ТС] #4
Цитата Сообщение от ValeryS Посмотреть сообщение
а что это за интересные массивы с 0 размером ты хотел создать??
сам то его представляешь?
Вы не поняли суть вопроса)) Спасибо gray_fox за внятный ответ.
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
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));
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2013, 11:38
Привет! Вот еще темы с ответами:

Двумерные массивы. - C++
для заданной матрицы размером 8x8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом. Как это вообще? Второй день голову...

Двумерные массивы - C++
Ребята, помогите очень прошу! :с По массиву А(n,m) получить массив В(n) (типа boolean), присвоив k-му элементу значение true, если все...

Двумерные массивы - C++
Привет всем! если есть у кого время, посмотрите что можно сделать, нужна ваша помощь! Сформировать одномерный массив B из максимальных...

с++ двумерные массивы - C++
с++ двумерные массивы, можете помочь написать код пожалуйста №1 Заполнить матрицу А(9,9), от левого верхнего угла по диагонали: вправо -...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.01.2013, 11:38
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru