¿Es segura la siguiente conversión?Conversión insegura
int b[10][10];
char *x;
int a[]={0,1,2,3,4,5,6,7,8,9};
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
b[i][j]=a[i];
for(x=(char *)&b[0];x<=(char *)&b[9][9];x+=sizeof(a+1)) // Problem lies here!
printf("%d\n",*x);
no creo que la conversión anterior en el bucle for
es seguro (creo que es dependiente de la plataforma). Por favor, corríjame si estoy equivocado. Estoy sorprendido porque el código se compila sin dar ninguna advertencia, incluso cuando se compila utilizando las opciones -Wall -pedantic
en gcc.
¿Qué es 'a', en' a + 1'? – GManNickG
Supuse que era un error b. Sin embargo, podría estar equivocado ... – Pod
@GMan y @Pod: ¡Editado! –