1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
| volvo |
22.04.2008 19:07
Сообщение
#21
|
|
Гость |
Ну, наверное все-таки потому, что printf не меняет входные параметры, они копируются в стек и выводятся на печать, а scanf как раз-таки должна значения параметров изменить (в этом и состоит ее задача), а сделать это можно только передав ссылку или указатель на аргумент (ссылок в чистом С еще не было, остаются только указатели).
|
| alfons |
24.04.2008 16:53
Сообщение
#22
|
|
Гость |
Дейтел. Как программировать на СИ. Очееееень подробная книга. Все очень просто, с примерами и заданиями!
|
| blackhard |
29.04.2008 16:31
Сообщение
#23
|
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 151 Пол: Мужской Реальное имя: иван Репутация: 0 |
Короче вот какой вопрос.У меня есть структура и указатель на нее по ходу выполнения мне надо под нее выделять память.Я решил сначало попробовать на простом примере
Сначала выделяю память под 1 элемент.Подом добавляю памяти под второй.Так вот все ли я делаю правильно?И как потом эту память очистить? free(CP) не прокатывает. |
| volvo |
29.04.2008 16:40
Сообщение
#24
|
|
Гость |
Скажи спасибо альфонсу, который посоветовал прочесть книгу Дейтела... Читай, наверное ее чтение само собой сделает свое дело, и ты больше не будешь задавать вопросов по С++... Там же все очень просто? Ну, так в чем дело?
Читаешь книгу, идешь спать... Проснулся - С++ стал тебе родным... Идиллия, правда? И главное - без усилий с твоей стороны, достаточно только прочитать, ведь "все ОЧЕНЬ просто!" (С) Сообщение отредактировано: volvo - 29.04.2008 18:21 |
| blackhard |
29.04.2008 16:47
Сообщение
#25
|
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 151 Пол: Мужской Реальное имя: иван Репутация: 0 |
Скажи спасибо альфонсу, который посоветовал прочесть книгу Дейтела... Читай, наверное ее чтение сделает свое дело, и ты больше не будешь задавать вопросов по С++... Там же все очень просто? Ну, так в чем дело? Да в том что неполучается освободить память после realloc на ф.и free(CP) выдается сообщение о том что обнаружена ошибка. Добавлено через 2 мин. Блин ну я и тупой........Всегото надо CP=(struct cel*)realloc(CP,2*sizeof(struct cel )); |
| blackhard |
29.04.2008 18:00
Сообщение
#26
|
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 151 Пол: Мужской Реальное имя: иван Репутация: 0 |
Если кому надо могу выложить Дейтела в электронном виде!!!
Сообщение отредактировано: blackhard - 29.04.2008 18:08 |
| renesko1 |
1.05.2008 14:52
Сообщение
#27
|
![]() поиск ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: nir Репутация: 2 |
Я смотрю тема стала очень популярной
Извините за флуд. -------------------- typedef void Śūnyatā ;
|
| renesko1 |
8.05.2008 17:15
Сообщение
#28
|
![]() поиск ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: nir Репутация: 2 |
Вот еще попрос в паскале, когда пишешь модуль с обьектом переменные(обекта) видны во всех процедурах и тд.
А в с++ как надо сделать что бы переменная была видна на весь модуль ? -------------------- typedef void Śūnyatā ;
|
| volvo |
8.05.2008 18:43
Сообщение
#29
|
|
Гость |
В С++ надо описать поле класса общим (в секции public) или пользоваться struct-урами, там поля общие по умолчанию, если не задашь другой метод доступа...
А вообще, это плохой стиль - давать всем подряд обращаться к полям класса. Лучше сделай Getter/Setter этой переменной, и дай им общий доступ, а саму переменную скрой в private-секции (так у тебя будет хоть какой-то контроль за тем, как изменяется поле класса; ведь может быть ситуация, что поле нельзя изменять, и вдруг какая-то посторонняя процедура берет и меняет его... Setter не должен ей этого позволить, если это на данный момент недопустимо) |
| renesko1 |
8.05.2008 18:56
Сообщение
#30
|
![]() поиск ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: nir Репутация: 2 |
Нет ты, к сожалению, не так меня понял. Я имею возможность обращатся в метадах обьекта напрямую не
записывая в параметры мою переменную. А так, да, конечно, если сделать обращение напрямую, потом не разберешся, что где когда меняешь. Сообщение отредактировано: renesko1 - 8.05.2008 18:56 -------------------- typedef void Śūnyatā ;
|
| volvo |
8.05.2008 19:31
Сообщение
#31
|
|
Гость |
Цитата Я имею возможность обращатся в метадах обьекта напрямую не записывая в параметры мою переменную. В методах объекта и в С++ ты можешь общаться со всеми полями напрямую... Разговор был о "снаружи", не правда ли?Цитата что бы переменная была видна на весь модуль (на модуль, а не на класс, чувствуешь разницу?)Или class base {
и читай переменную, сколько влезет, но записать в нее тебе никто не даст (только изнутри класса или friend-function)... Или, если хочешь программировать в стиле Паскаля: class base {
илиstruct base {
, и работай отовсюду... |
| renesko1 |
8.05.2008 20:17
Сообщение
#32
|
![]() поиск ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: nir Репутация: 2 |
Как всегда помог, да ты прав, постараюсь в след. раз лучше формулировать вопрс.
-------------------- typedef void Śūnyatā ;
|
| DocNo |
20.05.2008 16:37
Сообщение
#33
|
|
Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Мужской Репутация: 0 |
у меня вопрос
когда я должен вводить символы я ставлю условии на неналичие в них цифр вот так
тут все замечательно теперь я хочу сделать наоборот вводить цифры с условием на неналичие символов кроме цифровых вот так
но в далном случае прога виснет. подскажите что не так) |
| volvo |
20.05.2008 17:09
Сообщение
#34
|
|
Гость |
Ты ж читаешь число, а не строку через scanf("%d"), а работаешь с day, как со строкой? Это во-первых... Во вторых: что за метка? Достаточно было сделать вот так: char buffer[256]; // Это для сбрасывания введенной строки, которая НЕ является числом |
| DocNo |
20.05.2008 17:31
Сообщение
#35
|
|
Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Мужской Репутация: 0 |
а зачем адрес брать у дня?
|
| volvo |
20.05.2008 18:06
Сообщение
#36
|
|
Гость |
Это ты у разработчиков С спрашивай, зачем им понадобилось, чтобы scanf работала с адресами... Наверное, чтобы введенное значение можно было вернуть из функции. Иначе зачем scanf вообще нужна?
|
| blackhard |
28.05.2008 18:45
Сообщение
#37
|
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 151 Пол: Мужской Реальное имя: иван Репутация: 0 |
А если у ф.и вот такой протатип
int sum2(int k,int(*p)(int,...),...)(где k количество параметров).Как мне внутри этой ф.и передать необязательные параметры ... в ф.ю на которую указывет этот указатель int(*p)(int,...), и в которой тоже переменное число параметров?Можно так вообще сделать или нет? |
| volvo |
28.05.2008 19:50
Сообщение
#38
|
|
Гость |
Цитата Можно так вообще сделать или нет? Можно... Вот так, например:#include <stdio.h> |
| compiler |
14.06.2008 17:38
Сообщение
#39
|
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Вопрос #7
Вот есть программа, от которой я хотел бы составление последовательностей и вывод этого чуда.. Но увы она этого не делает( Наверно опять начудил с индексами.. Помогите.. #include <iostream> заранее благодарен. upd подправлены формулы для треугольных и квадратных чисел, добавлено явное привидение типов. Сообщение отредактировано: compiler - 14.06.2008 19:32 -------------------- Спасибо!
Удачи! |
| volvo |
14.06.2008 18:06
Сообщение
#40
|
|
Гость |
for(int i(0); i<number_seq; ++i){
Кстати, обрати внимание на предупреждение... Лучше приводить результат к типу int явным образом... |
![]() ![]() |
|
Текстовая версия | 13.12.2025 13:49 |