![]() |
Explicación declaración
Os dejo una duda facilita, se trata de una declaración que no me queda muy clara que vi en un código, a ver si me podéis interpretar qué significa:
Cita:
Cita:
No sé por qué mete en una posición del array de punteros el valor pcm, si es a su vez un array de enteros, cuando sólo podría asignarle enteros. :confused: |
Si. pcm_ es un array de punteros a int de dimensión 2.
Hace la asignación directa. Primer valor pcm. que es un array de 1024 enteros. Como quiere tener dos arrays consecutivos de 1024 int la asignación la hace asi. Primer elemento pcm_[0] = pcm. Segundo pcm[_1] = pcm+1024. Este tipo de asignaciones directas en C++ Código:
static Integer *pcm_[2] = { pcm, pcm+1024 };static Integer *pcm_[2] = { pcm, pcm+1024 }; no se refiere al elemneto[2] sino es la "declaración - asignación directa". Por otro lado [2] no puede existir (solo se declara tamaño 2). Saludos. |
Muchas gracias Escafandra, m eha sido muy útil la aclaración, yo no estaba seguro. Aún así me encuentro con un problema, y es que, si bien está aclarado que podría asignar el primer elemento así:
Cita:
Cita:
|
Código:
pcm[_1] = pcm+1024En C, puedes hacer la asignación como propones, después del tiempo de declaración. Da lo mismo. En Delphi probablemente el problema lo tienes en la aritmética de punteros. En C los punteros los sumas o restas tranquilamente. puedes sumar a un puntero un int significando que ahora apunta a p+int posición. No se mucho de pascal, pero creo que la aritmética de punteros no es tan directa como en C. o necesitarás una sintaxis especial. Investiga el tema. EDITO: La artimetica de punteros en C es sensible al tipo. No es lo mismo: Código:
char *C;Código:
int *I; |
| La franja horaria es GMT +2. Ahora son las 20:56:51. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi