|
|
|
Как правильно динамически создать масив GLubyte mas[100][100][4]?
|
|||
|---|---|---|---|
|
#18+
Как правильно динамически создать масив GLubyte mas[100][100][4]? код: GLubyte ***CVET_PIXSEL; int p_CHIRINA=100, p_VISOTA=100, p_CVET=4; int i,j; scanf("%d %d %d",&p_CHIRINA,&p_VISOTA,&p_CVET); CVET_PIXSEL=(GLubyte ***)calloc(p_CHIRINA,sizeof(GLubyte **)); for (i=0; i<=p_CHIRINA; i++) { CVET_PIXSEL =(GLubyte **)calloc(p_VISOTA,sizeof(GLubyte *)); for (j=0; j<=p_VISOTA; j++) CVET_PIXSEL[j]=(GLubyte *)calloc(p_CVET,sizeof(GLubyte)); } работает некорректно с функцией opengl - "glTexSubImage2D". Статически созданый масив GLubyte mas[100][100][4] работает прекрасно. Тут проблема в размерности динамически созданного масива, или функция "glTexSubImage2D" не работает с динамически созданными масивами. Если кто знает - ответьте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 23:44 |
|
||
|
Как правильно динамически создать масив GLubyte mas[100][100][4]?
|
|||
|---|---|---|---|
|
#18+
Нет, тут проблема с неумением считать звезды. И непониманием что такое массив вообще. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 00:17 |
|
||
|
Как правильно динамически создать масив GLubyte mas[100][100][4]?
|
|||
|---|---|---|---|
|
#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. А еще я бы сделал свой класс Или шаблонный класс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2005, 22:37 |
|
||
|
Как правильно динамически создать масив GLubyte mas[100][100][4]?
|
|||
|---|---|---|---|
|
#18+
_AlexeiИли, если еще больше на С++, то вот так: .... Или ссуть такая, в деталях(например, порядке выделения памяти, я мог перепутать чего-нибудь, а думать - лень, потому, что выпил) А думать никогда не вредно. Человеку явно нужен массив для работы с OpenGL. А оно, как и большинство интерфейсов, работает с линейными массивами а не с ветвистой структурой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2005, 23:10 |
|
||
|
Как правильно динамически создать масив GLubyte mas[100][100][4]?
|
|||
|---|---|---|---|
|
#18+
Существует единая формула равертывания многомерного вектора в одномерный. Проблема для автора топика может быть в том, насколько удобно обращатся к многомерному вектору через cube_vector::get(i,j,k....). Возможно постановка задачи более тривиальна и не потребует такого подхода. ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 09:33 |
|
||
|
Как правильно динамически создать масив GLubyte mas[100][100][4]?
|
|||
|---|---|---|---|
|
#18+
Лучше имхо написать враппер на одномерном массиве (физически, то что в памяти будет лежать - это будет тоже самое), с перекрытыми operator[]. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 09:33 |
|
||
|
Как правильно динамически создать масив GLubyte mas[100][100][4]?
|
|||
|---|---|---|---|
|
#18+
White Owl _AlexeiИли, если еще больше на С++, то вот так: .... Или ссуть такая, в деталях(например, порядке выделения памяти, я мог перепутать чего-нибудь, а думать - лень, потому, что выпил) А думать никогда не вредно. Человеку явно нужен массив для работы с OpenGL. А оно, как и большинство интерфейсов, работает с линейными массивами а не с ветвистой структурой. Читать тоже полезно уметь:) Прочтите вопрос еще раз Надо массив GLubyte*** просили обращение GLubyte[x][y][z] у вас же GLubyte* и обращение GLubyte(x+y+z) разница есть? "Ты минералочки хотел, так я тебе печенья принес" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 11:59 |
|
||
|
Как правильно динамически создать масив GLubyte mas[100][100][4]?
|
|||
|---|---|---|---|
|
#18+
_Alexei Читать тоже полезно уметь:) Прочтите вопрос еще раз Надо массив GLubyte*** просили обращение GLubyte[x][y][z] у вас же GLubyte* и обращение GLubyte(x+y+z) Сам читать не умеешь. GLubyte*** несовместим с GLubyte[100][100][4], исходя из этого автору GLubyte*** не нужен. Чтобы были тройные скобочки нужен operator[], который возвращает тип к которому применим operator[], который в свою очередь возвращает тип к которому тоже применим operator[]. типа Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 12:22 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33173037&tid=2033013]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
93ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 378ms |

| 0 / 0 |
