d34th escribió:Creo que en C no se puede
Tanto si lo creas estatico como dinamicamente lo que tienes es un puntero a una dirección de memoria, nada mas
Por lo tanto no tienes tamaño
Una opción seria crear un struct vector donde te guardes el puntero a la primera dirección y el tamaño del vector, te manera que a la función para rellenarlo solo le pases una referencia a tu struct vector
Seria hacer algo asi como la clase vector de c++
Por cierto, por que pasas el tamaño por referencia?
De todos modos tendría que declararlo al crear el struct, la idea es que pueda calcularlo. El tamaño lo paso así porque esto es un trozo de código de otro programa y estaba así. No es por nada especial xD.
NanakiXIII escribió:Las tablas en C acaban todas en \0 si no recuerdo mal. Simplemente haz que el bucle recorra hasta dar con el \0.
Esta función por ejemplo te devolvería el tamaño.
int tamaño(char tabla[])
{
int tam=0
while (tabla[tam]!='\0')
tam++;
return tam;
}
Pero eso seria para string, si no me equivoco, los arrays o vectores no terminan en '\0'. Corrigeme si me equivoco.
Slurp escribió:¿Con sizeof? Y dividiendo por el tamaño de cada elemento, claro...
Creo que no termino de entender lo que quieres decir, ¿ Podrías explicarlo un poco por favor?
Coolas escribió:o con un for... que te vaya recoriendo todas las posiciones y comparandotelas con "\0"....
tienes varias opciones
Como le decia al compañero, creo que eso solamente se da en los string (de tipo char), pero no estoy seguro al 100%