
Crear arreglo dinamico de uint64_t
Publicado por Diego (150 intervenciones) el 29/09/2016 23:59:59
BUenas tardes estuve intentando crear un arreglo con que vaya aumentando en 1 su tamaño a medida que se ingresan los numeros. pero cometo "Violación de segmento (`core' generado)", asi que algo estoy haciendo mal con el uso de los punteros.
COdigo:
COdigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <endian.h>
#include <inttypes.h>
void add_number(uint64_t **array, uint64_t number, uint64_t size);
int main(int argc, char *argv[]){
uint64_t num;
uint64_t *array = NULL;
uint64_t i;
// array = (uint64_t *)malloc(sizeof(uint64_t) * 1);
for (i = 0; i<4; i++){
scanf("%" SCNu64, &num);
add_number(&array, num, i);
}
for (i = 0; i<4 ; i++){
printf("num = %" PRId64 "\n", *(array + i));
}
return EXIT_SUCCESS;
}
void add_number(uint64_t **array, uint64_t num, uint64_t size)
{
// printf("Direccion = %p\n", &(*array));
*array = (uint64_t *) realloc(*array, (size + 1));
**(array + size) = num;
printf("num = %" PRId64 "\n", **(array + size));
}
Valora esta pregunta


0