No entiendo el surf de memoria en C

votos
-3
#include <stdio.h>
#include <stdlib.h>
#include <array.h>

int col, str;
int *point;

void setArr()
{
    printf(Input columns=); scanf(%d, &col);
    printf(Input strings=); scanf(%d, &str);
    int num[str][col];
    for(int i = 0; i < str; ++i)
    {
        for(int j = 0; j < col; ++j)
        {
            scanf(%d, &num[i][j];
        }
    }
    point = num;
}

int main(void)
{
    setArr();
    printf(First=%d\n, *point);
    printf(Number=%d, *point);
}

Salida:

Input columns=2
Input strings=2
1
2
3
4
First=1
Number=1740639104

Aquí tenemos el código en C, que tienen que obtener el número exacto de matriz mediante puntero, pero durante muchos intentos que entendemos que hay algo que no entiendo o simplemente no know.So hay un problema (o que tiene que ser así este), a saber, I se refiere a puntero, que apunta en primer elemento de dos veces y obtener resultados diferentes en cada caso. Por qué sucedió y de qué manera podría resolverlo? Gracias a todos.

Publicado el 07/11/2018 a las 22:47
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
2

Con

point = num;

está configurando pointa una dirección de una variable local función. Todo aún más el acceso de los que será un comportamiento indefinido.

Respondida el 07/11/2018 a las 23:00
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more