Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
По выделению массивов у меня получился Дельфи круче чем Си++ почему?
|
|||
|---|---|---|---|
|
#18+
Всегда программировал на дельфи. Сейчас пробую на Си++. Есть некоторое недоумение: Получается, что на Дельфи могу выделять массивы большего размера чем на Си++. Почему? код на дельфи выполняется без проблем Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. попытка компиляции кода на С++ Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. приводит к ошибке Unhandled exception at 0x0118c517 in pr1.exe: 0xC00000FD: Stack overflow. причем на дельфи выделяются 4 массива по 1000000 элементов, а на си++ не может выделиться даже 1...??? При значениях N меньше миллиона, все выполняется без проблем. Подумал, что проблемы с количеством памяти, но у дельфи столько же свободной памяти в распоряжении...??? Наверное, не должно быть так все грустно у Си++. Подскажите, что делаю не так? Спасибо. Компьютер тот же, оперативки столько же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2012, 22:13 |
|
||
|
По выделению массивов у меня получился Дельфи круче чем Си++ почему?
|
|||
|---|---|---|---|
|
#18+
чтобы не вводить в забуждение, оговорюсь, что n в дельфовом коде вводится пользователем, а не 0, как можно было бы подумать, так что ошибки тут нет, все работает. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2012, 22:19 |
|
||
|
По выделению массивов у меня получился Дельфи круче чем Си++ почему?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2012, 22:20 |
|
||
|
По выделению массивов у меня получился Дельфи круче чем Си++ почему?
|
|||
|---|---|---|---|
|
#18+
не очень пока силен в синтаксисе Си++. вектор - это класс? он может быть двух или трехмерным? Что он из себя представляет, массив? могу я передать указатель на него в функцию? спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2012, 22:23 |
|
||
|
По выделению массивов у меня получился Дельфи круче чем Си++ почему?
|
|||
|---|---|---|---|
|
#18+
пока на сколько понял, такое решение мне не подходит, поскольку вектор не сьютэйбл в дальнейшем с последующими функциями. не понимаю, что за ограничение на размер массива, он ведь даже не динамический... глупость какая-то. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2012, 22:30 |
|
||
|
По выделению массивов у меня получился Дельфи круче чем Си++ почему?
|
|||
|---|---|---|---|
|
#18+
Bestuzhev, потому что есть разница между массивами, выделенными в куче и расположеными на стеке. Приведенный вами Delphi код аналогичен следующему коду на С++: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. А приведенный вами С++ код аналогичен следующему коду на Delphi: Код: pascal 1. 2. Попробуйте такое скомпилировать и запустить - тоже получите stack overflow. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2012, 22:33 |
|
||
|
По выделению массивов у меня получился Дельфи круче чем Си++ почему?
|
|||
|---|---|---|---|
|
#18+
Спасибо огромное. Очень помогли. Все сработало как надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2012, 12:25 |
|
||
|
По выделению массивов у меня получился Дельфи круче чем Си++ почему?
|
|||
|---|---|---|---|
|
#18+
Bestuzhev, Дело не в языке программирования, а в размере стека, который компилятор по умолчанию делает. Если мало, можеш задать явно сколько надо. Если все равно мало, не создавай массив на стеке (класс памяти auto). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 08:42 |
|
||
|
По выделению массивов у меня получился Дельфи круче чем Си++ почему?
|
|||
|---|---|---|---|
|
#18+
Bestuzhevпока на сколько понял, такое решение мне не подходит, поскольку вектор не сьютэйбл в дальнейшем с последующими функциями. не понимаю, что за ограничение на размер массива, он ведь даже не динамический... глупость какая-то. :( Когда надо использовать вектор как массив , используется такая конструкция: void foo( float * ); std::vector<float> v(57); foo( &v[0]); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 08:51 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=89&tid=2020658]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 153ms |

| 0 / 0 |
