Не могу вернуть указатель из функции
23.10.2014, 05:04
|
|
|
Частый гость
Регистрация: 13.07.2006
Сообщений: 34
Сказал спасибо: 6
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от shindax
|
Просто человек когда-то, возможно, пробовал писать на Паскале.
|
И причем тут PASCAL? Личная неприязнь?
|
|
|
|
23.10.2014, 05:44
|
|
|
Прописка
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 35 раз(а) в 25 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от HardWareMan
|
|
И причем тут PASCAL? Личная неприязнь?
|
Да с чего неприязнь-то? Язык, как язык. Был языком для начинающих, со временем вырос, кое-где большие коммерческие проекты на нём делают. Просто в Паскале, помнится, массив был отдельным типом. И именно паскалисты чаще всего гневаются по поводу 'паскудности' Си.
Последний раз редактировалось shindax; 23.10.2014 в 05:52.
|
|
|
|
23.10.2014, 05:49
|
|
|
Прописка
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 35 раз(а) в 25 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от akegor
|
|
Считаете, что нечего было программировать? Семидесятые годы - начиная от Наири-2 и прочих Проминей, до ЕС-ЭВМ. Поинтересуйтесь историей выч.техники.
|
Так и поинтересовался сразу. Я сказал, разве, что нечего было программировать? Я спросил человека, с чем именно он работал.
|
|
|
|
23.10.2014, 09:41
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от akegor
|
|
Не помню нашу Электронику 100 - какая модель - но она была на транзисторах. Гы! И было, таки, чего там программировать!
|
Электроника 100/25 - это была цельнотянутая МЭПом PDP11.
Транзисторы тоже в ней были, микросхем больше
|
|
|
|
23.10.2014, 09:51
|
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от Boba_spb
|
|
Транзисторы тоже в ней были, микросхем больше
|
У нас была в виде кубика примерно 0.8х0.8х0.8 м на столе. В нутре куча плат с транзисторными триггерами и прочей лабуденью. Большой альбом схем. А вот мелкосхем я там не помню. Был я тогда лаборантом в лаборатории "ЭЦВМ", а непосредственный трах с потрохом этого чуда техники осуществлял другой человек. Но мой нос там был.
Вспомнил "Электроника 100и", аналог PDP-8.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
Последний раз редактировалось akegor; 23.10.2014 в 10:23.
|
|
|
|
23.10.2014, 10:18
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Делали АСУ - ОЗУ всего 28 килобайт !!!. Два проца у оператора, два на расстоянии метров 400 у объекта (дублированная система), цветные мнемосхемы, управляющих сигналов за 1000, аналоговых под 100 и время работы системы три недели. Команда из 6 программистов написала все с нуля - запрещено было пользовать импортный софт. Два года писали, три года на объекте пусконаладка, куча испытаний и доводка по их результатам. Потом штаная работа. Интересно было ....
|
|
|
|
23.10.2014, 10:56
|
|
|
Вид на жительство
Регистрация: 07.01.2007
Адрес: Ленинградская обл
Сообщений: 425
Сказал спасибо: 147
Сказали Спасибо 70 раз(а) в 55 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
"указатель на целое, или на массив целых, в Си это неважно,"
ничего подобного
указатель на целое В С эквивалентен самому массиву целых, а не указателю на массив целых  )))
то есть int f[25]
в БОЛЬШИНСТВЕ  ))))))) реализаций С то же самое что int *f
Вопрос лишь в том, в каких местах программы это то же самое, в каких нет
Мне приходилось и такое писать: &(f[0]), иначе не работало
Потому что это не стандарт, а просто всем привычное нарушение технологии программирования
(как, впрочем, и ++ а то и прибавление числа к указателю)
если кто хочет иметь переносимые и правильно работающие программы,
пишите соответствующий typedef и ссылку еготип *новая переменная...
я программу исправлять не буду принципиально
Бесполезно
уже не говорю, что наружу возвр адрес динамической пер, которая обычно  расположена в стеке этой функции (и теряется, в смысле, перезаписывается после выхода из этой функции) (дьявольский смех)))
static чтольпишите или глоб перем заводите, может, есть там static и typedef...
Зачем вообще на С это писать, Вы чётко понимаете, для какой конкретно цели выбран именно этот инструмент?
С кстати тот же ПАскаль. Курите классифик. языков программирования: всё это разновидности Алгола-60  - процедурные алгебраические языки программирования. Каждый из них отвёртка, которой можно и воробьёв ловить, почему нет
Последний раз редактировалось hacker7; 23.10.2014 в 11:49.
|
|
|
|
23.10.2014, 11:46
|
|
|
Прописка
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 35 раз(а) в 25 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от hacker7
|
указатель на целое В С эквивалентен самому массиву целых, а не указателю на массив целых )))
то есть int f[25]в БОЛЬШИНСТВЕ ))))))) диалектов С то же самое что int *f
|
А я о чём толкую??? И не "в БОЛЬШИНСТВЕ диалектов С", а во всех компиляторах Си. Или мы друг-друга не понимаем.
|
Код:
|
unsigned int func( unsigned int * ptr )
{
return * ptr ;
}
void main( void )
{
unsigned int * arr1 = {1,2,3};
unsigned int arr2[3] = {4,5,6};
unsigned int arr3[] = {7,8,9};
unsigned int var = 10 ;
unsigned int test ;
test = func( arr1 ) ; // test = 1
test = func( arr2 ) ; // test = 4
test = func( arr3 ) ; // test = 7
test = func( &var ) ; // test = 10
} |
Не пойму, если честно, о чём Вы толкуете.
Сообщение от hacker7
|
|
Потому что это не стандарт, а просто всем привычное нарушение технологии программирования (как, впрочем, и ++ а то и прибавление числа к указателю)
|
Не знаю, что Вы такое курите, но в Си такая работа с указателями - норма, придуманая его создателями и как там делалось в Алголе-60, вот лично мне, абсолютно до-фонаря, тем более, что ЯП Си сейчас в один из стандартов де-факто. И куда какой язык попадает при классификации ЯП, мне тоже всё-равно. И что за нарушения "технологии программирования", что это за "технология" такая вообще и кому она нужна, не поясните? Я ориентируюсь на стандарт Си, а Вы на какой?
Последний раз редактировалось shindax; 23.10.2014 в 11:50.
|
|
|
|
23.10.2014, 18:21
|
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
|
Цитата:
|
|
Я ориентируюсь на стандарт Си, а Вы на какой?
|
И на какой стандарт СИ вы ориентируетесь? Он не один. Ещё есть МИСРА и стандарты безопасности кода. Плюс фишки компиляторописателей. Поэтому ваш спор неуместен, вы ориентируетесь на определённый тип компилятора, при полном отсутствии знаний и понимания происходящего.
|
Цитата:
|
|
просто всем привычное нарушение технологии программирования (как, впрочем, и ++ а то и прибавление числа к указателю
|
Хорошая штука, удобная. А что говорит МИСРА?
|
Цитата:
|
Pointer arithmetic should not be used. Pointers and
arrays Advisory
|
Рекомендация, не более.
Вы в состоянии определить риски применения арифметики, не говоря уже о рисках при переносе на другую платформу?
|
|
|
|
24.10.2014, 07:42
|
|
|
Прописка
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 35 раз(а) в 25 сообщении(ях)
|
Re: Не могу вернуть указатель из функции
Сообщение от STM32F0
|
|
И на какой стандарт СИ вы ориентируетесь? Он не один. Ещё есть МИСРА и стандарты безопасности кода. Плюс фишки компиляторописателей.
|
Я в курсе, что стандарт не один. Тот код, что я привёл, написан в стиле классического Си, с применением программных конструкций, которые пойдут почти на любом адекватном компиляторе.
Сообщение от STM32F0
|
|
.Поэтому ваш спор неуместен, вы ориентируетесь на определённый тип компилятора, при полном отсутствии знаний и понимания происходящего.
|
С чего Вы взяли, что меня интересует Ваше мнение о моих познаниях, об уместности, или неуместности моих споров? "Не говорите, что мне делать и я не скажу, куда Вам идти"
Сообщение от STM32F0
|
|
...А что говорит МИСРА?...
|
Про единственно верный путь мы уже слышали. Керниган писал: "Си — инструмент, острый, как бритва: с его помощью можно создать и элегантную программу, и кровавое месиво". MISRA-C:2004 это: Guidelines for the use of the C language in critical systems, с чего вы ссылаетесь на неё, как на библию? Не все системы являются автомобильными, авиационными и жизнеобеспечивающими, а индус и по всем стандартам слепит потенциально опасный код. Есть-же электронные элементы с военного исполнения и для общего применения, никто не станет испытывать микросхему для микроволновки космическими тестами. Так-что Ваши страшилки про риски, про несоответствие чего-то стандарту МИСРА и в целом сравнение мягкого с холодным для меня пустой звук.
Последний раз редактировалось shindax; 24.10.2014 в 07:49.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:24.
|
|