Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,839
Записей в блоге: 4

Как выглядит код массива изнутри?

30.06.2020, 21:55. Показов 1324. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ну вот пример
C++
1
int*q,w[2]
Увидеть реализацию этих механизмов изнутри. Понятное дело что меня интересуют и многомерные массивы int**q но стоит идти от простого к сложному.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.06.2020, 21:55
Ответы с готовыми решениями:

Как выглядит изнутри динамическое выделение объекта через new?
То есть на Си будет выглядеть так : struct T { int x, y; }; /* Эта процедура является отображением конструктора...

Как выглядит код грамматики Хомского?
Как выглядит код грамматики Хомского?

Как в программе выглядит код для записи в текстовый файл
#include "stdafx.h" #include <iostream> using namespace std; class Bank { private:

32
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
30.06.2020, 22:48
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Nexi99 Посмотреть сообщение
и выход на Асэмблер
https://godbolt.org/ в помощь.
Цитата Сообщение от Nexi99 Посмотреть сообщение
За столько постов я уже объяснил подробно свой вопрос.
Объяснил разве что себе самому. Нам вот не понятно что тебя интересует.

Добавлено через 2 минуты
Цитата Сообщение от Байт Посмотреть сообщение
Выделяется память на указатель. ВСЕ!
Как в недавней теме показывали - это просто объявление указателя, а будет ли там память выделена или нет решит компилятор.
0
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,839
Записей в блоге: 4
30.06.2020, 22:49  [ТС]
Цитата Сообщение от Байт Посмотреть сообщение
Ничего таки нет. Так и говорим. Выделяется память на указатель. ВСЕ!!! Как его использовать - дело лично твое.
Ну в принципе ответ дали в этой записи int****q, происходит автоматический подсчёт звёздочек стандартный синтаксис а эта запись int q[][][][] по интереснее и скорее всего должна иметь функцию здесь подсчитываются уровни и подуровни.
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
30.06.2020, 22:50
Nexi99, вы как-то странно все понимаете.
Давайте на пальцах покажу:
Вы в школе изложения писали? Знаете что это?
Компилятор делает тоже самое.
Он читает код на С++. Строит из него внутреннее представление - это уже не С++, а структура данных, "дерево". Может как-то оптимизировать его, выкинуть лишние узлы, что-то переставить местами. Потом на основе этой структуры данных генерирует машинный код.
Например, если вы объявили массив в коде, но никак его не используете, то компилятор увидит это, соответственно в машинном коде не будет ничего связанного с этим массивом.

Какую именно функцию вы хотите увидеть? Функцию построения "дерева"? Функцию оптимизации? Или функцию генерации машинного кода?
Сразу отвечу, что в любом случае это будет не одна функция, а целый конгломерат функций.

Может вам для начала почитать что-нибудь по теории компиляции? Книгу Дракона, хотя бы? Блог LLVM?
1
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,839
Записей в блоге: 4
30.06.2020, 22:52  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Как в недавней теме показывали - это просто объявление указателя, а будет ли там память выделена или нет решит компилятор.
Скорее пользователь. Значит за этими записями выход на Асэмблер. Теперь всё понятно хотя...
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
30.06.2020, 22:54
Цитата Сообщение от Nexi99 Посмотреть сообщение
Скорее пользователь.
Как сказано выше - компилятор построит код так, как считает нужным и, если захочет, выкинет часть кода пользователя за ненадобностью.
Пример: Занимает ли какое-либо место в памяти неинициализированный указатель?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
30.06.2020, 22:55
Цитата Сообщение от Croessmah Посмотреть сообщение
а будет ли там память выделена или нет решит компилятор.
Ничего не путаешь? На указатель-то память выделится, есть объявление - есть выделение. А уж что там дальше будет выделяться, решает отнюдь не компилятор, а программист
Впрочем, тема скользкая, каши в голове ТС намешано порядочно, лично я ее размешать не берусь
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
30.06.2020, 22:56
Цитата Сообщение от Байт Посмотреть сообщение
Ничего не путаешь?
Нет, не путаю. Смотри пример по ссылке выше.
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
30.06.2020, 23:01
Цитата Сообщение от Байт Посмотреть сообщение
На указатель-то память выделится, есть объявление - есть выделение.
Если переменная никак не используется, то "выделения", в данном смещения указателя фрейма, не будет. Ну, точнее оно теоретически может быть в какой-то наивной реализации, но современные компиляторы, даже при полностью заглушенной оптимизации не будут этого делать.
Смотрите: https://godbolt.org/z/WT-PN6 rbp и rsp на месте, их никто не тронул.
0
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,839
Записей в блоге: 4
30.06.2020, 23:05  [ТС]
Всё ребята я понял больше не пишите сообщений в теме. Происходит выход на Асэмблер грубо говоря а там уже да сыр быр но с меня с++ хватит. Зелёный пока я ещё.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
30.06.2020, 23:23
В памяти компьютера нет никаких вложенностей, и запись (например) int q[5][5] выделит последовательно расположенные 25 ячеек, каждая из которых размером в int. Два индекса существуют только для твоего удобства, что-бы ты представлял массив как таблицу 5 строчек и 5 столбцов, и мог работать отдельно с строками и столбцами

Компилятор пересчитает имя переменной и два индекса в адреса в физической памяти, где расположены ячейки. Так ли уж обязательно увидеть этот код? Для q[i][j] это будет что-то вроде (i*5+j)*sizeOf(int)
0
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,839
Записей в блоге: 4
30.06.2020, 23:41  [ТС]
Цитата Сообщение от alexu_007 Посмотреть сообщение
Так ли уж обязательно увидеть этот код?
Ну вот мне интересно как программа сапаставляет выражение (i*5+j)*sizeOf(int). Это же интересно как каждый указатель направлен на массив и получается многомерный массив. Я про это и спрашиваю. Это позволит усовершенствовать мои функции. Но никто не знает как пишут что уже выходит на Асэмблер.
0
30.06.2020, 23:48

Не по теме:

Цитата Сообщение от Nexi99 Посмотреть сообщение
Это же интересно как каждый указатель направлен на массив и получается многомерный массив.
DrOffset и DrLea помогут. )))

0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
01.07.2020, 09:55
Croessmah, DrOffset, да, я понял свою ошибку. Просто слоган понравился. Но, имхо, невыделение памяти на неиспользуемую переменную - это уже лптимизация, хоть и самая примитивная.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.07.2020, 09:55

подскажите как выглядит код приложения
недавно разобрался как создавать приложения для windows с winapi, код простого окошка выглядит так: #include <windows.h> ...

Как выглядит вирус php изнутри?
<?php /** * @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php ...

Как выглядит метод dispose "изнутри"
Привет всем возник вопрос .Вот я высвабаждаю неуправляемые ресурсы с помощью dispose,ну например ентити подключение,фрейворк реализует сам...

Как распечатать код так, как он выглядит в редакторе
Здравствуйте, Подскажите, пожалуйста, как распечатать код так, как он выглядит в редакторе. В Студии 2005 проблем не было - цветная...

Как выглядит исходный код функции sqrt стандартной библиотеки math.h?
Здраствуйте. Мне надо исходный код функции sqrt стандартной библиотеки math.h . В интернете не могу найти понятный пример, а библиотеки...


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru