Ver Mensaje Individual
  #8 (permalink)  
Antiguo 27/04/2005, 12:00
MaxExtreme
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 10 meses
Puntos: 17
Cita:
Iniciado por lord_zoo
Bueno, definitivamente poniento a archiv como puntero se solucionaba perfectamente el problema.

Realmente me confunde un poco esto, ya que en los ejemplos que vi, no estaba de esta manera, ni tampoco como un arreglo. Asi que una de dos cosas, o el ejemplo estaba mal redactado o es muy viejo y algo en C cambio. :D

Igual, mil gracias, aunque ahora no se si siempre que use un char, aunque despues lo inicialice con una cadena estatica tenga que hacerlo como puntero.
Pero ahora estoy un poco mas sabio y eso me va a ayudar.

Gracias de nuevo.

Saludos.
Un char equivale a un byte... Nada más que un byte. Y un puntero a char es una dirección a un byte... O a más. Para almacenar cadenas (las que sean) debes usar arrays (_no_ arreglos) o punteros.

Acostúmbrate a usar strcpy. Porque parece ser que te leo como diciendo "voy a usar siempre el operador de asignación (=)", y si lo haces vas a obtener resultados que te parecerán extraños. Por ejemplo, tenemos:

Código:
char * a;
char * b;

a = "Hola";
b = a;
Después de ese código pensarás que a contiene "Hola" y b contiene "Hola". No es cierto. Los punteros no "contienen". Los punteros apuntan. Por esa razón a apunta a una dirección que pone "Hola" y b a esa misma. Si tú cambias 'a' por "Adios", b como apunta al mismo sitio, también será "Adios". Y viceversa.

Si usas strcpy te aseguras de que estás copiando la cadena, no la dirección. Eso sí, con strcpy debes tener un array (que ya tiene memoria asignada) o asignarla tú dinámicamente.

Lo de la versión o fabricante del compilador da =, ejemplos tan simples no dependen de eso... a menos que sea uno extraño no compatible con ANSI-C.