1. Ощибка - если вводим больше чем N-1 символов, то и будет "segmentation fault". (произойдёт выход за границы массива char*) 2. Если ошибаемся в махинациях с arglist будет как каз вылет в
manya писал(а):
for (i = 0; i<N; i++) //при первом же заходе сюдЫ падает
Member
Статус: Не в сети Регистрация: 08.05.2006 Откуда: СПБ
Danmerproу нас есть класс прямоугольник,с методами длина и ширина, и вы от него наследовали новый класс квадрат,так ведь? соответственно метод ширина уже не может использоваться в классе квадрат,я про это обрезание методов
_________________ Мы все знаем, что Linux — это круто… он выполняет бесконечные циклы за 5 секунд.
* Линус Торвальдс
Member
Статус: Не в сети Регистрация: 20.03.2009 Откуда: Санкт-Петербург
Russian писал(а):
так ведь?
Нет Есть класс матрица. У неё, помимо виртуальных функций, есть длина и ширина. Если наследуемая матрица квадратная, то у квадратной матрицы просто длина равна ширине.
_________________ Задачи бывают простыми и очень простыми...
Member
Статус: Не в сети Регистрация: 08.05.2006 Откуда: СПБ
Danmerproтак вот у наследуемой квадратной матрицы тоже будет метод и ширина и длина и сможем установить и длину и ширину, чего нельзя делать одновременно, поэтому лучше создать класс квадратная матрица, и унаследовать класс просто матрица,а не наоборот
_________________ Мы все знаем, что Linux — это круто… он выполняет бесконечные циклы за 5 секунд.
* Линус Торвальдс
Member
Статус: Не в сети Регистрация: 20.03.2009 Откуда: Санкт-Петербург
Russian А как бы тогда осуществлялся ввод? Допустем есть только указатель на SquareMatrix. Я не знаю, какая матрица унаследована от него. В моём случае я бы использовал два цикла
get_len и get_width были бы уже у базового класса, а set_elm уже у каждого свой. Я понял Вашу логику, но так или иначе, в Вашем случае пришлось бы писать для каждого класса свои get_len и get_width(так как у квадратной матрицы они возвращали бы одно значение, а у любой другой-разные), а в моём-таскать для квадратной матрицы ненужный метод, содержащий в себе ширину. Если я правильно понял, то Ваш метод лучше
_________________ Задачи бывают простыми и очень простыми...
1-байтные char'ы отрисовываются по 8-битной кодовой таблице из локали системы/приложения (там может быть как ansi, так и cp1251, например) 2-байтные wchar - это utf16
Member
Статус: Не в сети Регистрация: 02.05.2007 Откуда: Москва-Таганка.
Заранее прошу прощения, что мой вопрос может оказаться совсем "ламерским", но нужно быстрое решение, поэтому решил крикнуть "Help!" на любимом форуме. Ведётся обработка на Perl документов XML. Есть С-шная библиотека - libxml2 c xmlsoft.org, с которой хочется работать. К ней есть Perl API в виде Perl модуля XML::LibXML (стандартный с search.cpan.org), который кажется очень тяжёлым и на 90% излишним для моих задач. Решил попытаться сделать свой (усечённый) API для этой библиотеки (а заодно и для Libxslt - в одном флаконе). До этого работал естественно на Perl (опыт более 10 лет) и на всяких разных "билдерах" типа Delphi и ему подобных. Т.е непосредственно с процессами компиляции, компоновки, связывания используемыми в зыках С/С++ знаком очень приблизительно (если не сказать - "никак"). Отсюда вопрос - Что почитать и где порыться, чтобы максимально быстро разобраться в этих вещах. Справочников/учебников по самим С и С++ тонны, перерыл с десяток, но там в основном только сам язык. Что бы точнее обьяснить что же я всё таки хочу - несколько подвопросов: - что такое makefile - его структура, синтаксис, руководство по разработке. - что такое файлы *.h - тоже структура, синтаксис, руководство. - что такое файлы *.o? - какие библиотеки называют - "стандартными" и как собственно обращаться к их функциям? Подгрузку и обращение к *.dll библиотекам из Delphi (object pascal), когда-то делал, но здесь, как мне показалось, принцип совершенно другой - подключения должны быть определены ещё до процесса компиляции. Я не жду развёрнутых ответов и уж точно прошу не давать ответов типа "файл - *.* это ... , подробнее ищи в мануалах". Я прошу именно ссылки на эти самые мануалы, где подобные вещи описаны. Желательно конечно по короче и на русском, но ... уж как получится. Благодарен буду за любую информацию.
Извините, если вопрос показался совсем дилетантским. Заранее спасибо.
_________________ Делать надо как надо, а как не надо делать не надо.
Member
Статус: Не в сети Регистрация: 02.05.2007 Откуда: Москва-Таганка.
Russian, спасибо конечно за попытку помочь.
Principal_AG писал(а):
Я не жду развёрнутых ответов и уж точно прошу не давать ответов типа "файл - *.* это ... , подробнее ищи в мануалах". Я прошу именно ссылки на эти самые мануалы, где подобные вещи описаны.
Очень хочется как раз разобраться - что действительно твориться внутри, а не тихо радоваться тому, что тебе нагенерил "билдер". Особенно то, что касается этой самой программы "make" и всем, связанным с ней.
Деннис Ричи / Брайен Керниган и Бьярн Страуструп - уже давно лежат в моём "золотом фонде", с них и начал. Но это, как я писал - сам язык, а с этим как раз проблем нет.
Russian писал(а):
Principal_AG писал(а):
и как собственно обращаться к их функциям
функция(параметр1,параметр2,...)
Собственно программированием занимаюсь более 20-ти лет и это ... вообще без комментариев.
Про "Стандартные библиотеки" хотелось бы понять - где искать их описания (назначение / состав функций). Если применительно к компиляторам, то основной - MinGW (разрабатывать собираюсь во фрэймворке Eclipse_3.6/CDT под ХРюшой), но в дальнейшем результат разработки должен быть перенесён под FreeBSD (на ВЭБ сервер под Апачем). В качестве учебно/отладочной среды поставил себе Визуал-Студию 2008, но это чисто для изученя С++ (по ней больше всего материалов удалось нарыть). А вообще в Майкрософтовские технологии влезать не особо хочется.
_________________ Делать надо как надо, а как не надо делать не надо.
- что такое файлы *.h - тоже структура, синтаксис, руководство.
Это - как раз часть Си. У К&R должно быть описано.
Principal_AG писал(а):
- что такое файлы *.o?
Результат работы компилятора. Описание (в общем виде) не существует, т.к. зависит от конкретной платформы.
Principal_AG писал(а):
- какие библиотеки называют - "стандартными" и как собственно обращаться к их функциям? Подгрузку и обращение к *.dll библиотекам из Delphi (object pascal), когда-то делал, но здесь, как мне показалось, принцип совершенно другой - подключения должны быть определены ещё до процесса компиляции.
Так называемая стандартная библиотека - то, что входит в стандарт ANSI. Это то, что описано у K&R и еще много чего. В хелпе от MSVC про каждую функцию сказано, на каких платформах она поддерживается. Если надо писать программу, работающую (после перекомпиляции) как на Вин, так и на *никсах, придется ограничиться ANSI. Подключение библиотек бывает как статическим (.lib/.obj/.o), так и динамическим (.dll/.so). Для начала предлагаю оставить нюансы на откуп линкера/компилятора/ОС. Кстати: http://www.acm.uiuc.edu/webmonkeys/book/c_guide/
Member
Статус: Не в сети Регистрация: 02.05.2007 Откуда: Москва-Таганка.
Herod, вот это уже по делу, вот это действительно спасибо! Буду разбираться.
З.Ы. А постановка "придется ограничиться ANSI" к сожалению хорошо знакома. В своё время, когда получил в руки Oracle, вместе с ним получил однозначное указание - не выходить за стандарты ANSI SQL-92 (т.к приложение в дальнейшем планировалось переносить и под DB2). Долго, помню тогда плевался т.к. 2/3 "вкусностей" Oracle оказались под запретом. Но ... что делать. Сори, за оффтоп.
_________________ Делать надо как надо, а как не надо делать не надо.
Последний раз редактировалось Principal_AG 13.06.2011 15:14, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 02.05.2007 Откуда: Москва-Таганка.
Ещё раз Сэээнкс. А это уже напоминает письмо "кросс-браузерности" под JavaScript, до того как IE начал подерживать W3C-сную DOM модель. Сори, я опять в оффтоп, но ... выходной .
_________________ Делать надо как надо, а как не надо делать не надо.
Junior
Статус: Не в сети Регистрация: 31.05.2009 Откуда: Санкт-Петербург
Добрый вечер. Помогите пожалуйста. Я разработал алгоритм сортировки одномерного массива, проверил его с разными вариантами всё работает. Но не могу запилить прогу. Фотки кликабельны. Язык - обычный си.
Сейчас этот форум просматривают: Google [Bot] и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения