Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
5 / 5 / 1
Регистрация: 10.07.2017
Сообщений: 56

Ошибка в коде или чему учат в школе

15.07.2019, 12:18. Показов 5005. Ответов 50
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня!
Не пинайте сильно. Только начал изучать С++ и наткнулся на пример из учебного пособия одного из крупных ВУЗов:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
char *s;
register int t;
s = malloc(80);
if (!s) {
printf("Память выделена не была.\n");
return 1;
}
gets(s);
for(t=strlen(s)-1; t>=0; t--) printf("%c", s[t]);
free(s);
return 0;
}
Вот только компилятор затыкается вот тут: s = malloc(80); -со словами: значение типа "void *" нельзя присвоить сущности типа "char *"
Это я что-то не так делаю или нужно сказать спасибо авторам пособия?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.07.2019, 12:18
Ответы с готовыми решениями:

Учат в школе, учат в школе...
Кхм, был глубоко поражен степенью дебилизации нынешней молодежи: Не ту страну назвали Гондурасом. Посмотрел тесты, которые предлагает...

чему нас учат в институте %)
тут такая вот ситуация нашел пару ошибок в одной из предоставленных задач и их решений в своей методичке по С++, а именно:#include...

Ошибка в IIS 7 или в коде?
Добрый день! Создаю два связанных @DropDownListFor. В зависимости от выбранной категории формируется список разделов. Модель данных...

50
5 / 5 / 1
Регистрация: 10.07.2017
Сообщений: 56
17.07.2019, 10:40  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Речь о том, что вы выдаете это за ошибку методички, которую "героически нашли"
Вы ошибаетесь, я достаточно самокритичен:

Цитата Сообщение от Tanatholog Посмотреть сообщение
Дурак, понятно, что я. Только начал изучать предмет.
Цитата Сообщение от Tanatholog Посмотреть сообщение
Это я что-то не так делаю?
И предлагаю вести диалог о сути предмета, а не о надуманном "героизме".
Поверьте, я не буду рассуждать о возрасте, героизме и прочем в обсуждении методик расчета, монтажа, настройки и проверки дифференциальной защиты трансформатора. Все мы учимся. Что-то знаем, а во что-то только вникаем.
Строго не судите. Всем добра и шоколадку.
1
698 / 140 / 57
Регистрация: 20.08.2017
Сообщений: 255
17.07.2019, 14:57
Цитата Сообщение от Renji Посмотреть сообщение
Да вот еще раз открыл главу "Случайные числа", еще раз и увидел. Никакого матана школьникам недоступного там нет. Или давайте цитатку чего там такого неподъемного. При условии что читать по порядку, а не пролистывать.
Третий том, первая страница: «ПЕРЕСТАНОВКОЙ конечного множества называется…». В школе не изучают теорию множеств, даже просто понятие множества не дается.

На той же странице: «Понятие инверсии ввел Г. Крамер <…> В сущности он определил детерминант n×n-матрицы…». Линейная алгебра в школе не изучается, так что обычный школьник не знаком с определителями матриц, да и с матрицами вообще.

На пятой странице упоминается понятие дисперсии случайной величины, о которой рядовой школьник тоже ни сном ни духом.

Это только пять первых страниц из ~800. 1 том из 5 написанных.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
17.07.2019, 15:44
Цитата Сообщение от Eanmos Посмотреть сообщение
Третий том, первая страница: «ПЕРЕСТАНОВКОЙ конечного множества называется…». В школе не изучают теорию множеств, даже просто понятие множества не дается.
На первых страницах у меня вступление.
Ну да, в разделе 5.1 вводят понятие перестановки множества. И там же разжевывают. Вот в этом смысле для школьников и разжевано - необходимый мат-аппарат объясняется по ходу дела.
Цитата Сообщение от Eanmos Посмотреть сообщение
На пятой странице упоминается понятие дисперсии случайной величины, о которой рядовой школьник тоже ни сном ни духом.
Случайные величины подробно разбираются во втором томе. И еще раз повторюсь, надо читать, а не сразу на третий том прыгать.

Добавлено через 21 минуту
Цитата Сообщение от Eanmos Посмотреть сообщение
На пятой странице упоминается понятие дисперсии случайной величины, о которой рядовой школьник тоже ни сном ни духом.
UPD Да тьфу-ты, дисперсию еще в первом томе разбирали, надо было сразу в глоссарий в конце книги глянуть.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13241 / 6873 / 1827
Регистрация: 18.10.2014
Сообщений: 17,420
17.07.2019, 16:41
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
gcc прекрасно размещает, можно даже указать конкретный регистр, во встраиваемых системах это даже изредка используется.
Любой компилятор размещает переменные в регистрах, по своему усмотрению. Ключевое слово register никакого отношения к этому не имеет - оно просто игнорируется. В языке С оно сохранено лишь для компилируемости старого кода. Единственный наблюдаемый эффект - невозможность применения оператора & к переменной. (А в языке С++ такого класса хранения больше нет вообще.)

"register с указанием конкретного регистра в GCC" - это asm-расширение GCC. К теме не относится.
1
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
17.07.2019, 17:17
Цитата Сообщение от Tanatholog Посмотреть сообщение
Запутался со структурами:
Со структурами все в порядке, в функции makepoint часть букв русские
1
5 / 5 / 1
Регистрация: 10.07.2017
Сообщений: 56
18.07.2019, 04:04  [ТС]
Цитата Сообщение от ТабуретY Посмотреть сообщение
Со структурами все в порядке, в функции makepoint часть букв русские
Да, нашел уже, спасибо!
0
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,101
18.07.2019, 11:21
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Ключевое слово register никакого отношения к этому не имеет - оно просто игнорируется.
Это подсказка по оптимизации. В отдельных случаях компилятор имеет право ее проигнорировать, но при разумном применении - учитывает. Пример с gcc как раз пример, где ключевое слово register применяется по назначению
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13241 / 6873 / 1827
Регистрация: 18.10.2014
Сообщений: 17,420
18.07.2019, 16:55
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Это подсказка по оптимизации. В отдельных случаях компилятор имеет право ее проигнорировать, но при разумном применении - учитывает.
Наоборот. Есть набор экзотических случаев, когда это ключевое слов может быть как-то учтено. https://gcc.gnu.org/onlinedocs... ation.html

В режиме -O0 оно позволяет компилятору оптимизировать переменные. И для некоторых "редких x86 конфигураций" оно может влиять на поведение в присутствии setjmp.

В других компиляторах может быть по-другому. Но сегодня никаких разумных причин для иного положения дел просто нет.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Пример с gcc как раз пример, где ключевое слово register применяется по назначению
Ни в коем случае. Это совсем другая функциональность. Использование register с расширением "Explicit Register Variables" компилятора GCC не имеет ничего общего с его стандартным "подсказочным" назначением ни по синтаксису, ни по сути. Никакой "подсказкой" оно в этом применении не является.
0
33 / 22 / 12
Регистрация: 13.09.2017
Сообщений: 74
19.07.2019, 00:11
Цитата Сообщение от Eanmos Посмотреть сообщение
В школе не изучают теорию множеств, даже просто понятие множества не дается.
Интересно, а где вы учились ? Теория множеств с 9-го класса, если не раньше, начинает изучаться в любой школе
0
698 / 140 / 57
Регистрация: 20.08.2017
Сообщений: 255
19.07.2019, 04:35
JesD, учился в обычной общеобразовательной школе. Хм, возможно, у нас с вами были разные программы обучения.
0
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,101
19.07.2019, 11:26
Цитата Сообщение от JesD Посмотреть сообщение
Интересно, а где вы учились ? Теория множеств с 9-го класса, если не раньше, начинает изучаться в любой школе
У нас в физмат классе ее не было вообще. Не знаю что у вас за школа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.07.2019, 11:26

Ошибка сервера или в коде
Может ли как-нибудь зависнуть сервер(hostinger) и не брать какую либо информацию? Т.к. час назад перестала работать одна из функций...

Некорректное задание или ошибка в коде
Доброго времени суток! Есть задание (рис. 1) Моя программа: using System; using System.Collections.Generic; using...

Баг stm8s003 или ошибка в коде?
При написании программы под контроллер STM8S003 столкнулся с такой проблемой. Когда я работаю с одним каналом АЦП, то все работает...

Ошибка в коде или в ASP.NET 2?
Недавно столкнулся с ошибкой в ASP.NET2.0 Данные у меня хранятся в одной таблице в рекурсивном виде , (id,parent_id) . Что бы каждый...

К чему относится this в данном коде ?
У меня есть код реализированного шаблонного односвязного списка и данный метод push_back. На 10 строчке используется ключевое слово this....


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

Или воспользуйтесь поиском по форуму:
51
Ответ Создать тему
Новые блоги и статьи
BitTorrent (версия 7.11 English) и Меню Настройки
russiannick 15.11.2026
Пункты, отвечающие за отключение обновлений в BitTorrent версии 7. 11 (английской) Options Preferences General Language
Транслитерация текста с кириллицы на латиницу (вариант №4)
Maks 15.11.2026
Что-то я перемудрил с предыдущими версиями, в этот раз сделал всё проще, обратившись к функции "СтрокаЛатиницей" из типового общего модуля "СтроковыеФункцииКлиент". В данной функции нет апострофов,. . .
BitTorrent (версия 4.3.9) и Меню Настройки
russiannick 15.11.2026
В меню Настройки можно отключить автоматическое обновление программы. Карта этого меню приложена ниже. Нужный пункт выделен красным. Сервис Настройки Поведение
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки. Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён". Изменено отображение буквы Й. Добавлена. . .
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru