Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Fotonic
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 14
#1

Указатели, Керниган и Ритчи 5.4 - C (СИ)

29.09.2015, 17:54. Просмотров 259. Ответов 6
Метки нет (Все метки)

Здравствуйте, нужна помощь начинающему. Читаю Керниган и Ритчи и не могу понять следующую вещь: зачем нам allocbuf в условии :
C
1
if(allocbuf + ALLOSIZE - allocp >= n)
Если allocp указывает на первый пустой символ, то разве ALLOSIZE - allocp не даёт нам искомый результат...
0
Миниатюры
Указатели, Керниган и Ритчи 5.4  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2015, 17:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Указатели, Керниган и Ритчи 5.4 (C (СИ)):

Керниган, Ритчи, указатели и упражнение 5.3
Добрый день! "Напишите свою версию функции strcat, ... с применением...

Ритчи и Керниган
В этом учебники в некоторых примерах прототип функции объявляется внутри другой...

Керниган/Ритчи упражнение 1.20
"Упражнение 1.20. Напишите программу detab, заменяющую символы табуляции во...

Компилятор С(Керниган ,Ритчи)
Здравствуйте! Открыл книгу Брайана Кернигана и Денниса Ритчи. Первое задание ...

Керниган Ритчи Упражнение 2.2
Добрый день. Помогите начинающему разобраться пожалуйста. Само...

Керниган/ритчи задачи 1.18
Упражнение 1.18. Напишите программу, которая будет в каждой вводимой строке...

6
Fonduee
Музыка нас Связала
229 / 229 / 52
Регистрация: 26.03.2008
Сообщений: 616
29.09.2015, 18:28 #2
Лучший ответ Сообщение было отмечено Fotonic как решение

Решение

Цитата Сообщение от Fotonic Посмотреть сообщение
разве ALLOSIZE - allocp не даёт нам искомый результат
Метод "Яблоки - Груши" не рабоатет. ALLOСSIZE - это сколько мы аллоцировали, а allocp - указывает на область, где находится поинтер (он может быть к примеру, адрес на бум: 0x42FFA5). А если бы запросим всего 10 байт, то что мы получим отняв он сего значения значание allocp? Правильно, ничего хорошего.
1
Fotonic
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 14
29.09.2015, 18:37  [ТС] #3
Я правильно понимаю, что (аllocbuf - allocp) даёт нам кол-во занятых символов? то есть это оба указателя...
0
Fonduee
Музыка нас Связала
229 / 229 / 52
Регистрация: 26.03.2008
Сообщений: 616
29.09.2015, 18:48 #4
Цитата Сообщение от Fotonic Посмотреть сообщение
аllocbuf - allocp
Если их поменять местами или смотреть на абсолютную величину, то да.
1
Fotonic
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 14
29.09.2015, 18:51  [ТС] #5
то есть allocbuf это указатель на начало строки?
0
Fonduee
Музыка нас Связала
229 / 229 / 52
Регистрация: 26.03.2008
Сообщений: 616
29.09.2015, 18:52 #6
Лучший ответ Сообщение было отмечено Fotonic как решение

Решение

Цитата Сообщение от Fotonic Посмотреть сообщение
на начало строки?
На начало массива.
1
QewerC
6 / 6 / 9
Регистрация: 15.07.2015
Сообщений: 56
29.09.2015, 19:18 #7
C
1
if(allocbuf + ALLOSIZE - allocp >= n)
И так ALLOSIZE 2000
Если вычем allocbuf(первое элемент массива, указатель)-allocp(последнея зарезервированая ячейка массива), получим сколько забил места со знаком минус, дальше прибавляем 2000 штуки(это сколько места нужно) и будет сколько осталось. Далее будем использовать еще места в массиве и получится разница: -2000(сколько заняли allocbuf-alloc) да плюс 2000(сколько нам надо) и есть 0, то есть места уже ноль осталось. Дальше он проверит больше или нет, но так минимум значение 1, то минимальное значение -2001+2000=-1 >= n в любом случае ложьь
0
29.09.2015, 19:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2015, 19:18
Привет! Вот еще темы с решениями:

Керниган/Ритчи упражнение 1.22
"Упражнение 1.22. Напишите программу, печатающую символы входного потока так,...

Керниган и Ритчи подсчет строк
после запуска вместо результата просто переходит на следущую строчку ...

Не запускается прога из Керниган и Ритчи
программа-калькулятор #include <conio.h> #include <math.h> #include...

Керниган и Ритчи подсчет строк
после запуска вместо результата просто переходит на следущую строчку ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru