|
unsafe c#
|
|||
---|---|---|---|
#18+
Это развитие вот этой темы . Изопропил Код: plaintext 1. 2. 3. 4. 5. 6.
Код: c# 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.
Поехали вопросы: Зачем этот цикл?: for (int i = 0; i < sz; i++) s += d[i] . Нужно, чтобы метод Test возвратил массив L типа double. Если я напушу вот так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Это нормально? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 14:43 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
Нет. Не нормально. Указатели могут быть использованы только в контексте unsafe. Как же поиметь массив L? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 14:53 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
Не надо unsafe... Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 15:08 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
Если на С-стороне использовать COM Safe Array, на C#-стороне всё упростится. Маршалинг по умолчанию для массивов ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 15:17 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
vlsafНет. Не нормально. Указатели могут быть использованы только в контексте unsafe. Как же поиметь массив L? пометь все свои классы unsafe ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 15:20 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
Алексей К, в библиотеке - malloc , не выйдет ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 15:21 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
Алексей К, топикстартеру нужно без копирования ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 15:21 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
vlsafЗачем этот цикл?: for (int i = 0; i < sz; i++) s += d[i] . просто так для примера ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 15:23 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
ИзопропилАлексей К, топикстартеру нужно без копированияЕсли выделять память под массив на дотнетной стороне, полагаю, копирования не будет? Код: c# 1. 2.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 15:26 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
Алексей КЕсли выделять память под массив на дотнетной стороне, полагаю, копирования не будет? предлагалось - не годится ( Создание одномерного массива типа double размерности N ) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 15:28 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
vlsaf Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Это нормально? Это не может быть нормально - double* L скроет параметр ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 15:31 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
ИзопропилvlsafНет. Не нормально. Указатели могут быть использованы только в контексте unsafe. Как же поиметь массив L? пометь все свои классы unsafeПолучается что так. Может лучше скопировать? Неужели там так много? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 15:40 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
ИзопропилАлексей К, в библиотеке - malloc , не выйдеток ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 15:49 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
Алексей КПолучается что так. Может лучше скопировать? Неужели там так много? грят - долго http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1089889&msg=15902770 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 16:00 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
Изопропил, как быть с памятью, которая выделяется на С++ в нативном коде? Надо ее освобождать через Marshal.FreeCoTaskMem(p)? Хотя это уже будет после всех расчетов, даже пока не знаю где. Где-то в одной из секций unsafe{...}. Верно? Есть какие-то ходы, которые позволяют не следить за памятью. Например С++ код у нас прописан статическим, значит от вызова к вызову переменные в нем сохраняет свои значения. Можно-ли в коде на С++ следить за памятью? И перед CoTaskMemAlloc, если там что-то было , то освободить? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 16:29 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
vlsafИзопропил, как быть с памятью, которая выделяется на С++ в нативном коде? для используемой библиотеки, как я понял, нужно вызывать (раздел 2.2 документации) SUPERLU_FREE () Destroy_CompCol_Matrix() Destroy_SuperMatrix_Store() Destroy_SuperNode_Matrix() StatFree() PS CoTaskMemAlloc библиотекой не используется ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 16:35 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
Использует С++ оболочка над этой библиотекой. Вот твой пример: Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 16:48 |
|
unsafe c#
|
|||
---|---|---|---|
#18+
vlsaf, оболочка пусть и освобождает что нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2014, 16:50 |
|
|
start [/forum/topic.php?fid=20&msg=38621718&tid=1403003]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 327ms |
total: | 464ms |
0 / 0 |