|
|
|
Передача указателя в качестве аргумента в С.
|
|||
|---|---|---|---|
|
#18+
Есть такая функция. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Внутри функции pchr принимает правильное значение, все прекрасно. Проверяем Код: plaintext 1. 2. 3. 4. 5. 6. 7. pchr_test остается 0. Подскажите где ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2016, 13:46 |
|
||
|
Передача указателя в качестве аргумента в С.
|
|||
|---|---|---|---|
|
#18+
Если ты хочешь изменить значение указателя, то надо указатель на указатель использовать. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2016, 13:57 |
|
||
|
Передача указателя в качестве аргумента в С.
|
|||
|---|---|---|---|
|
#18+
Да точно. Так работает. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2016, 14:04 |
|
||
|
Передача указателя в качестве аргумента в С.
|
|||
|---|---|---|---|
|
#18+
Кстати а как оптимальней всего взять из строки " Attribute="value" " атрибут и значение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2016, 16:39 |
|
||
|
Передача указателя в качестве аргумента в С.
|
|||
|---|---|---|---|
|
#18+
jenya7Кстати а как оптимальней всего взять из строки " Attribute="value" " атрибут и значение? что вы понимаете под оптимальностью в данном случае? Например, ваша функция XML_PARSER_FindElementEnd на мой взгляд работает далеко не оптимальным образом, даже без учета качества реализации данного алгоритма на языке Си. И кстати не очень понятно, что там у вас работает, особенно аллоцирование подобным образом Код: plaintext 1. , ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2016, 23:06 |
|
||
|
Передача указателя в качестве аргумента в С.
|
|||
|---|---|---|---|
|
#18+
jenya7 Код: plaintext 1. Здесь нулевой char можно не писать, потому что компилятор и так его добавляет: Код: plaintext 1. 2. 3. 4. jenya7Кстати а как оптимальней всего взять из строки " Attribute="value" " атрибут и значение?Попробуйте так: Код: 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. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. Вывод на консоль: Код: sql 1. 2. SashaMercuryИ кстати не очень понятно, что там у вас работает, особенно аллоцирование подобным образом Код: plaintext 1. Это C99 VLA (variable-length array). Реализованы обычно через функцию alloca, которая выделяет память в stack-е. Это скользкий момент, потому что в C (и C++) нет нормального способа обработать переполнение stack-а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 04:04 |
|
||
|
Передача указателя в качестве аргумента в С.
|
|||
|---|---|---|---|
|
#18+
спасибо. попробую ваш алгоритм. это действительно VLA. тут конечно есть опасность stack overflow. но я думаю есть механизмы контроля. вроде регистр SP доступен. можно посмотреть где мы находимся в стаке и сколько осталось места. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2016, 09:32 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39371448&tid=1340540]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
200ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 292ms |
| total: | 581ms |

| 0 / 0 |
