|
|
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
Привет программисты, если нетрудно, помогите!!! Есть динамический массив, вот: int *mas = new int[100]; Как теперь определить сколько в нём записей. Мне надо сделать так: for(int i=0; i<=[кол. элем. мас.]; i++) { секрет } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 17:10 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
Функция rand спасет отцов русской демократии. :-)))) -- There Ain't No Such Thing As A Free Lunch ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 17:15 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
1) ошибка в условии конца цикла -- если от нуля, то нужен знак "меньше" for(int i=0; i<[кол. элем. мас.]; i++) { секрет } 2) элементов массива в Вашем примере не более 100, кроме этого ничего нельзя сказать. Либо нужно в конце записывать некий "символ конца данных" (как 0 в Сшных строках), либо завести где-то отдельно счетчик записанного. 3) лучше STL, если возможно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 17:20 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
если 0 - это не запись, то как длину ASCIZ Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 17:26 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
лучше так Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 17:28 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
saintлучше так Код: plaintext 1. 2. 3. А нуль мы что, уже и за число не считаем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 17:32 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
Блин! Четко же обозначено что массив динамический. И определить в неком другом месте (функции, например) кол-во записей в нем, не представляется возможным, кроме как передачей в это место размера этого массива. Все попытки выкрутится с помощью якобы не используемых значений - от лукавого. vbnv метко заметил насчет STL. есть vektor - и не надо изобретать велосипеды. -- There Ain't No Such Thing As A Free Lunch ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 17:36 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
Господи я и неожидал что здесь столько акул С++ плавает. Я ошибся в своём примере. int *mas = new int[кол записей в таблице - БД]; Тоесть всегда разное количество. Я могу это число в переменную запомнить. А потом подставлять но это некрасиво, хочется определять. Плиз. хелп ми. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 17:41 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
-- There Ain't No Such Thing As A Free Lunch Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 17:53 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
упс! ошибся. вместо start() надо begin() ;-) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 17:56 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
Можно попробовать распределять память malloc-ом и, затем, для вычисления длины массива пользоваться _msize из <malloc.h> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 18:13 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
_БалтикаМожно попробовать распределять память malloc-ом и, затем, для вычисления длины массива пользоваться _msize из <malloc.h> Не портабельно. :-) Хотя многие считают, что нет систем кроме Виндовс, и Б.Г. пророк ее. :-)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 18:45 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
alex83_sql int *mas = new int[кол записей в таблице - БД]; Тоесть всегда разное количество. Я могу это число в переменную запомнить. А потом подставлять но это некрасиво, хочется определять. Плиз. хелп ми. А в чем проблема? Я бы так и сделал. Хранить 2 байта где-нибудь - это проще чем вычислять везде размерность. Хотя условие задачи меня, если честно, пугает - если есть база данных, зачем создавать массив? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 19:49 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
В этой задече так надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 14:57 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
vbnv2) элементов массива в Вашем примере не более 100, Что значит -"не более ста" - элементов в массиве РОВНО СТО. С номерами от 0 до 99. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 15:04 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
BlackStar _БалтикаМожно попробовать распределять память malloc-ом и, затем, для вычисления длины массива пользоваться _msize из <malloc.h> Не портабельно. :-) Хотя многие считают, что нет систем кроме Виндовс, и Б.Г. пророк ее. :-)))) Если юзать что-то кроссплатформенное, типа Net'a, то проблем воще нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 15:06 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
alex83_sqlТоесть всегда разное количество. Я могу это число в переменную запомнить. А потом подставлять но это некрасиво, хочется определять. Определять - невозможно. Ты сам должен выделять память под массив и сам должен хранить его выделенный размер. Если ты хочешь, чтобы это за тебя делал кто-то другой, используй std::vector или другие классы динамических массивов (имеется в виду из других библиотек, помимо STL). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 15:08 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
MasterZiv alex83_sqlТоесть всегда разное количество. Я могу это число в переменную запомнить. А потом подставлять но это некрасиво, хочется определять. Определять - невозможно. delete то определяет... Есле мне память не изменяет, стандартный new (в некоторых реализациях c++) пишет размер выделенной области в 2 или 4 байта, предшествующие распределенной области. Но тут опять BlackStarНе портабельно. :-) Хотя многие считают, что нет систем кроме Виндовс, и Б.Г. пророк ее. :-)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 17:19 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за помощь. Я решил просто запоминать в переменной. а потом использовать. Но было интересно как можно ещё. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 17:28 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
Ну и я тебе о том же... spectreА в чем проблема? Я бы так и сделал. Хранить 2 байта где-нибудь - это проще чем вычислять везде размерность... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 21:05 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
Хы... Есть один безумный вариант, но он сработает только если до цикла больше не выделяется память... Можно считать количество свободной памяти до создания массива, используя что-нибудь вроде вот такой штуки: Код: 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. далее сравнивать это значение, с количеством выделенной и разницу делить на sizeof(int) и опять же авторBlackStar Не портабельно. :-) Хотя многие считают, что нет систем кроме Виндовс, и Б.Г. пророк ее. :-)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 03:32 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
Тут уже не то что не портабельно, а из гаубицы по мухам! :-)))) -- There Ain't No Such Thing As A Free Lunch ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 11:03 |
|
||
|
Динамический массив, его размер.
|
|||
|---|---|---|---|
|
#18+
MasterZiv vbnv2) элементов массива в Вашем примере не более 100, Что значит -"не более ста" - элементов в массиве РОВНО СТО. С номерами от 0 до 99. :) да, грешен -- нужно было еще оговорку "значимых для alex83_sql" и еще для верности "расположенных подряд, начиная с индекса 0" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 11:46 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33460173&tid=2032211]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 374ms |

| 0 / 0 |
