Hola, muy buenas. Para entender la duda, primero hay que mirar el trozo de código:
GLchar *(source[1]);
La duda que se me presenta es: ¿por qué la variable 'source' es un arreglo a punteros?
Digo por qué afirmo esto:
Si hago la siguiente asignación con el código de antes no me da error:
source[0] = data;
Pero si hago esta asigación con la variable creada con
GLchar (*source)[1];
Si que me da error. Más concretamente, el siguiente error:
error: assignment to expression with array type source[0] = data;
Les agradezco su ayuda. Estoy trabajando en C y a veces es un lío xD
GLchar *(source[1]);
GLchar *source[1];
GLchar* source[1];
Esos 2 son lo mismo. Un array de 1 puntero a GLchar.
El otro, pues como tiene el paréntesis, se evalua al revés, primero es un puntero, y luego array. Puntero a array.
Como detalle, para saber qué va primero, si array o puntero, se evalúa en este orden: paréntesis, derecha, izquierda, siempre de dentro hacia fuera.
int **var[10][4][3];
int 54var123;
Así que 'var' será: array10 de array4 de array3 de puntero a puntero a int.