Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Добрый день уважаемые программисты. У меня есть внешний метод с сигнатурой func(char *thePointer); Я хочу создать на стеке массив типа long[] и передать ссылку на него в этом метод Подскажите как это правильно сделать ? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 17:14 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Разобрался, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 17:38 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Семен.Семенович, сам подумал, сам решил. Задал вопрос - напиши ответ. а то так скучно на этой ветке когда везде бороздят просторы ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 22:42 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Да вопросик то для начинающий Я полагал что местные гуру С++ должны такое знать Я то вообще джавист С++ только начинаю учить и поэтому дурацкие вопросики задаю тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 22:53 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичЯ полагал что местные гуру С++ должны такое знать покажи как сделал, а гуру при необходимости выдадут рекомендации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 23:41 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Семен.Семенович, авторЯ хочу создать на стеке... Только помни, сколько он проживет. В С массив и указатель на 1й элемент - одно и тоже. А за памятью следи сам. Ссылки - это чуть другое (разница легкая, но есть) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 23:41 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
ИзопропилСемен.СеменовичЯ полагал что местные гуру С++ должны такое знать покажи как сделал, а гуру при необходимости выдадут рекомендации long buffer[8]; char *pointer = reinterpret_cast<char *>(&buffer); func(pointer); по идее пока мы снизу стека то что сверху не должно быть удалено запустил компилится и работает Если криво написал сильно не бейте :) я новичок в плюсах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 00:10 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Семен.Семенович, мог бы написать проще Код: plaintext 1. важнее, как ты потом будешь это интерпретировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 00:26 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
SiemarglСемен.Семенович, мог бы написать проще Код: plaintext 1. важнее, как ты потом будешь это интерпретировать. Я передаю указатель во внешнюю либу Она ожидает это как поток байт. А в чем разница между моим и твоим подходом ? Я где то читал reinterpret_cast вообще не хорошо использовать Однако открывал некоторые проекты на гитхабе и там вовсю эту конструкцию используют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 00:35 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичА в чем разница между моим и твоим подходом ? Я где то читал reinterpret_cast вообще не хорошо использовать. Там где это написано, забыли добавить, что reinterpret_cast<T*> плохо, а (T*) ещё хуже :) И не уточнили, что "плохо" - это не категоричное плохо, а просто предостережение начинающим :) И забыли добавить, что конкретно reinterpret_cast<char *> - вообще хорошо, т.к. не нарушает strict aliasing: https://ru.stackoverflow.com/questions/503265/Что-такое-strict-aliasing Так что код у вас верный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 00:45 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичА в чем разница между моим и твоим подходом ? Твой - C++. Его - С. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 01:24 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovСемен.СеменовичА в чем разница между моим и твоим подходом ? Твой - C++. Его - С. Я бы сказал, что в обоих случаях, функции в качестве аргумента достанется один и тот же адрес. Исходя из этого, можно было бы вообще не кодировать, а записать явно: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 02:02 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичДобрый день уважаемые программисты. У меня есть внешний метод с сигнатурой func(char *thePointer); Я хочу создать на стеке массив типа long[] и передать ссылку на него в этом метод Подскажите как это правильно сделать ? Спасибо. никак. надеюсь, ты рзобралсяа правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 06:56 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
MasterZiv, никак ? вон сколько советов дали уже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 08:33 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичMasterZiv, никак ? вон сколько советов дали уже Некоторыми новоградами считается, что плохой стиль ещё плохому научу: если нужно выделение памяти с размером, неопределяемым на этапе компиляции, в большинстве компиляторов поддерживается alloca ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 10:42 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Некоторыми новоградами считается, что плохой стиль А как правильно ? Выделять char[] на стеке ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 10:57 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Семен.Семеновичkealon(Ruslan)Некоторыми новоградами считается, что плохой стиль А как правильно ? Выделять char[] на стеке ?я думаю MasterZiv имеет мнение против самой идеи, но наверное было бы лучше если бы он сам пояснил а как это сделать в случае нужды - у вас уже есть целых два способа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:03 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
А чем сама идея то плоха ? Ну не хочу я в хипе массив выделять - непроизводительно это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:04 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичА чем сама идея то плоха ? Размером стэка. Он всего 1 Мб по-умолчанию. Не забывай об этом, если массивы на стэке будешь размещать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:33 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Dima TСемен.СеменовичА чем сама идея то плоха ? Размером стэка. Он всего 1 Мб по-умолчанию. Не забывай об этом, если массивы на стэке будешь размещать. Так у меня размер массивчика 16 байт Длина фиксирована ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:34 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичА чем сама идея то плоха ? Ну не хочу я в хипе массив выделять - непроизводительно это не такие уж и большие потери. но да, на стеке быстрее, хотя и не так безопасно в перспективе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:39 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
А рекурсия безопасна ? Создаем метод с двумя параметрами method(long t1, long t2) на каждой итерации рекурсии получаем плюс те же 16 байт Граждане вы что ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:40 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичА рекурсия безопасна ? Абсолютно безопасна, если контролируется максимально допустимый уровень вложенности. А без такого контроля ее и не используют. Ну, за исключением, разве что, студентов ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 12:07 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
ptr128, А как эту глубину кстати грамотно контролировать ? Просто регулируя глубину вложенности через доп параметр ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 12:18 |
|
||
|
Передача по ссылке
|
|||
|---|---|---|---|
|
#18+
Семен.Семеновичptr128, А как эту глубину кстати грамотно контролировать ? Зависит от компилятора и от платформы. Под Linux доступна функция getrlimit(), в Windows можно воспользоваться VirtualQuery(), на микроконтроллерах просто считаю напрямую, используя размер статического блока, указатель стека и количество оперативной памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 13:05 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2018012]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 274ms |
| total: | 529ms |

| 0 / 0 |
