Tengo este bucle que da seg. culpa.¿Cómo trato un puntero como una matriz múltiple?
s->c = malloc(width * height * sizeof(double));
if (s->c == NULL) { puts("malloc failed"); exit(1); }
for (int n = 0; n < width; n++) {
for (int m = 0; m < height; m++) {
d = (&s->c)[m][n];
printf("d %f\n", d);
printf("m %i\n", m);
printf("n %i\n", n);
}
}
Dentro s-> c es:
double* c;
Cuando ejecuta sólo da salida:
d 27.000000
m 0
n 0
y luego seg. culpa.
Funcionó cuando traté el s-> c como una matriz 1D, pero realmente me gustaría tratarlo como una matriz 2D.
¿Es posible, cuando el puntero c está en una estructura?
Si es así, ¿es (&s->c)[m][n]
la forma correcta de acceder a los elementos?
Sandra
¿Puede darnos un poco más de código especialmente de la asignación? – tur1ng
¿Cómo se asigna c? – 3lectrologos
Ahora se agrega cómo se asigna c. –