Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
hoggy
Заблокирован
Эксперт С++
03.05.2015, 16:32 0

Как найти количество элементов массива, зная лишь адрес первого элемента и тип?

03.05.2015, 16:32. Просмотров 896. Ответов 10
Метки (Все метки)

Ответ

Цитата Сообщение от Iridiscent Посмотреть сообщение
если массив char то последним элементом должен быть '\0' (если он не двумерный)
никому он ничего не должен.
это сильно зависит от способа использования.

например, техника boost::optional<T> под капотом использует массив для аллокации объекта.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//--- сильно упрощено
//--- реальная реализация сложнее
//--- учитывает выравнивание, и тп.
 
//--- хранилище данных способное вместить в себя объект типа some
char buf[ sizeof(some) ];
 
//--- аллоцируем объект в хранилище
new (buf) some; //<--- и что по вашему теперь содержит чаровый буфер?
 
//--- доступ к объекту, расположенному в хранилище
some* ptr = reinterpret_cast<some*>(buf); 
 
ptr->work();


Вернуться к обсуждению:
Как найти количество элементов массива, зная лишь адрес первого элемента и тип?
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2015, 16:32

Вычислить количество элементов массива целых M [15] больших квадрата первого элемента этого массива
Помогите пожалуйста решить. Вычислить количество элементов массива целых M ...

Адрес первого элемента массива
1. Написать функцию, принимающую в качестве параметра количество строк и...

Найти количество перемещений первого элемента заданного массива
Помогите пожалуйста найти количество перемещений первого элемента Я не понимаю...

0
Другие темы раздела
C++ Нахождение самого длинного слова в строке http://www.cyberforum.ru/cpp-beginners/thread1436515.html
Здравствуйте :) У меня есть проблема, я написал программу, но она работает не совсем так как надо. Задание: Создать текстовый файл. Слова в файле отделены пробелами , запятыми , точками. В каждом...
C++ Не меняет строчку и столбец в матрице #include<iostream> int n,i,k,j,f,p,y; int main() { setlocale(0, "rus"); std::cout « "Введите размерность квадратной матрицы: "; while (!(std::cin >> n)) { std::cin.clear(); while... http://www.cyberforum.ru/cpp-beginners/thread1436511.html
Класс содержащий vector C++
Вот я написал класс с использованием vector #include <vector> #include <iostream> using namespace std; class Vector { friend ostream &operator<<(ostream &, const Vector &); friend istream...
Error C3861: _tcsdup: идентификатор не найден C++
#include "stdafx.h" #include <windows.h> #include <stdio.h> #include <conio.h> #include <time.h> #include <iostream> #include <tlhelp32.h> #include <comdef.h> using namespace std;
C++ Объектно-ориентированное приложение: "Эмулятор банкомата" http://www.cyberforum.ru/cpp-beginners/thread1436412.html
Доброго времени всем! я начал изучать С++ И хотел бы спросить вашей помощи в этом нелёгком труде. Дело в том, что мне нужно сделать объектно-ориентированное приложение- Эмулятор банкомата. это своего...
C++ Подскажите GUI библиотеку на c++ Начал давеча изучать c++, разобрался с основными функциями и тп., но хочется создавать GUI приложения. Оказывается сам c++ не может делать такое, я конечно мог бы попробовать C#, но он заточен под... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru