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

Разобраться в функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Компилятор С++ http://www.cyberforum.ru/cpp-beginners/thread638093.html
Скажите, пожалуйста, каким редактором для написания кода вы пользуетесь, и какой компилятор используете? Напишите недостатки и преимущества вашего выбора. Я начинающий программист, пишу и...
C++ Условие: если строка пустая - выполнить действие Здравствуйте, если можете, помогите создать такое условие: "Условие: если строка пустая - выполнить действие...", на основе этого кода: #include <iostream> using namespace std; int... http://www.cyberforum.ru/cpp-beginners/thread638087.html
C++ Сортировка слиянием (рекурсивный метод) текстовой строки
Привет всем. Возникла трудность не понимаю как отсортировать методом слияний (рекурсивным методом) текстовую строку. К примеру дана строка qwerty qwe qwert qwer И должно получиться следующее qwe...
Ошибка: Stack was corrupted C++
Здравствуйте уважаемые программисты. Написал простейшую программу заполнения массива и вывода его на консоль. Но при запуске вылазит ошибка (см. прикреплённый файл). Объясните пожалуйста в чём дело?...
C++ Операторы ввода и вывода http://www.cyberforum.ru/cpp-beginners/thread638040.html
Допустим есть класс class Checked { public: private: double id; int *beg; std::pair<std::strin, std::strin> par;
C++ Деревья Знаю пару тройку фундаментальных структур на основе дерева: красно-черное дерево бинарное древо поиска AVL дерево 2 - 3, 2 - 3 - 4 дерево H дерево Вопрос: подскажите фундаментальные... подробнее

Показать сообщение отдельно
zss
Модератор
Эксперт С++
6575 / 6137 / 2021
Регистрация: 18.12.2011
Сообщений: 15,993
Завершенные тесты: 1
15.08.2012, 16:52
Смысл там в том, что в выделенной памяти решили хранить и размеры массива.
Однако, размеры то целочисленные, а массив действительный.
Поэтому в 17 строке выделяется память под массив указателей на адреса строк
и плюс под 1 целое число для хранения количества строк.
В 18 строке вместо адреса в нулевую ячейку записывается это количество строк.
А в 19 строке передвигаем указатель на свободное место. Однако надо сдвинуться
не на 8 байт, а на 4(размер целого числа). Поэтому такое дурное приведение.
Поскольку компилатор приходит от него в ступор, то используйте просто прибавление 1:
C++
1
p=(int*(p))+1; //сдвинуть указатель
Аналогично сделано в строках 30-32 для выделения памяти для каждой строки.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.