I have an array with 2 dimensions and when I print the data of the array the first time, the date is printed correctly, but the other times the data of array[last][i] from i = 0
The problem as I see it is, you're looping over with a condition check like
for (unsigned int i = 0; i <= numero; i++)
for an array defined as
unsigned int p_a[numero];
and you're going off-by-one. This is essentially invalid memory access which invokes undefined behavior.
C arrays have 0-based indexing, so the valid limit would be
for (unsigned int i = 0; i < numero; i++)