buenas tardes amigos, dado este sencillo codigo tengo las siguientes dudas:
1) porque al mostrar en pantalla el valor apuntado hacia un vector, no se referencia al puntero? (es decir, no escribo el * cuando hago
y cuando lo hago con una variable tipo INT si
2) porque no puedo tomar la direccion especifica cuando apunto a una direccion dinamica?
(es decir, no puedo hacer
1) porque al mostrar en pantalla el valor apuntado hacia un vector, no se referencia al puntero? (es decir, no escribo el * cuando hago
Código [Seleccionar]
printf("valor...... %s ", (char*)punt);
y cuando lo hago con una variable tipo INT si
Código [Seleccionar]
printf("el valor.... %i\n", *(int*)punt);
2) porque no puedo tomar la direccion especifica cuando apunto a una direccion dinamica?
(es decir, no puedo hacer
Código [Seleccionar]
printf("valor de la memoria: %i", &punt[1]);
)Código [Seleccionar]
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
void *punt;
punt = malloc(20 * sizeof(char));
strcpy(punt, "hola mundo\n");
printf("el valor al que apunta es: %s \n", (char*)punt); //aca no se referencia
printf("direccion de memoria..: %d\n",&punt);
free(punt);
punt = malloc(sizeof(int));
*(int*)punt = 1;
printf("el valor apuntado es: %i\n", *(int*)punt); //aca si se referencia el puntero
printf("direccion de memoria..: %d\n",&punt);
printf("direccion de memoria..: %d\n",&punt[1]);//porque esto no se puede
printf("direccion de memoria..: %d\n",&punt[2]);
printf("direccion de memoria..: %d\n",&punt[3]);
free(punt);
return 0;
}