Haz todo lo posible por interpretar el código de forma correcta previamente a aplicarlo a tu trabajo si tdeseas aportar algo puedes comentarlo.
Solución:
no puedes No con 100% de precisión, de todos modos. el puntero no tiene longitud/tamaño sino su propio. Todo lo que hace es apuntar a un lugar particular en la memoria que contiene un char. Si ese char es parte de un stringentonces puedes usar strlen
para determinar qué caracteres siguen al que se está señalando actualmente, pero eso no significa que el array en tu caso es así de grande.
Básicamente:
A puntero no es un arraypor lo que no necesitar para saber cual es el tamaño array es. Un puntero puede apuntar a un solo valor, por lo que un puntero puede existir sin que haya siquiera un array. Ni siquiera le importa dónde se encuentra la memoria a la que apunta (solo lectura, montón o pila… no importa). Un puntero no tiene una longitud distinta de sí mismo. Un puntero simplemente es…
Considera esto:
char beep = 'a';
void alert_user(const char *msg, char *signal); //for some reason
alert_user("Hear my super-awsome noise!", &beep); //passing pointer to single char!
void alert_user(const char *msg, char *signal)
printf("%s%cn", msg, *signal);
Un puntero puede ser un solo carácter, así como el principio, el final o la mitad de un array…
Piense en los caracteres como estructuras. A veces asigna una sola estructura en el montón. Eso también crea un puntero sin un array.
Usando solo un puntero, para determinar qué tan grande es array está apuntando es imposible. Lo más cerca que puedes llegar es usando calloc
y contando el número de caracteres consecutivos que puede encontrar a través del puntero. Por supuesto, eso no funciona una vez que haya asignado/reasignado cosas a ese array’s keys y también falla si la memoria acaba fuera de del array pasa a sostener