SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: pacorubio77 en Viernes 11 de Mayo de 2007, 12:55
-
Hola,os voy a plantear un problema.y no se porque me da error,porque no se como se asigna (en este caso).
pNodo nodo,pNODO aux;
getline(cin,categoria)
strcpy(aux->articulo.cat,categoria);
aux->articulo.cat[ktam-1]='\0';
//esto anterior lo hago para meter por teclado y recortar si meto mas de el tamaño especificado.
ahora quiero asignar
nodo->articulo.cat=aux->artiuculo.cat //????
esa asignacion como se haría..conforme lo tengo puesta,daría error,,pero como se haría la asignacion?
quiero asignar el campo cat de mi nodo aux ,al campo cat de mi nodo NODO.
-
¿cat es un char[size]? Si es asi, lo mejor que podes hacer es la misma copia que antes (strcpy), si fuera un char * te funcionaria de una.
-
si...cat es un char [15],pero si te fijas...tengo un getline(cin,categoria),,estoy leyendo un string. y despues paso ese string a mi vector de caracteres,,,me entiendes,,,y como dices que se haría la asignación????
-
si...cat es un char [15],pero si te fijas...tengo un getline(cin,categoria),,estoy leyendo un string. y despues paso ese string a mi vector de caracteres,,,me entiendes,,,y como dices que se haría la asignación????
¿Y como sabes que no te van a dar una cadena de 25 caracteres? No podes asignarlo a menos que uses un puntero sino tenes que copiar la memoria tal como ya haces.
-
si el tamaño porque me lo especifican en la practica,es decir si yo meto una categoria de 25 palabras se tiene que recortar
es decir si yo hago:
aaaaaaaaaaaaaaaaaaaaaaaa tiene que quedar aaaaaaaaaaaaaa y al final \0 para que las demas a's que queden no se almacenen en el buffer,,pero ese no es el tema...el tema es la asignación..me puedes decir como se hace?
Repito:
Conforme lo he puesto yo,está mal,es decir me da errores de compilación.
-
si el tamaño porque me lo especifican en la practica,es decir si yo meto una categoria de 25 palabras se tiene que recortar
es decir si yo hago:
aaaaaaaaaaaaaaaaaaaaaaaa tiene que quedar aaaaaaaaaaaaaa y al final \0 para que las demas a's que queden no se almacenen en el buffer,,pero ese no es el tema...el tema es la asignación..me puedes decir como se hace?
Repito:
Conforme lo he puesto yo,está mal,es decir me da errores de compilación.
Bueno, eso no es lo que estas haciendo, sino que estas copiando con strcpy sobre vaya a saber uno que memoria.
Esa linea es el problema: strcpy(aux->articulo.cat,categoria);
Repito:
No podes asignarlo a menos que uses un puntero sino tenes que copiar la memoria tal como ya haces (strcpy aunque seria mejor strncpy).
-
claro,,si aux es un puntero...???que tiene una serie de campos..
aux la tengo definida como un pNODO..cual es el fallo??
-
claro,,si aux es un puntero...???que tiene una serie de campos..
aux la tengo definida como un pNODO..cual es el fallo??
Que cat no es un puntero, es un array estatico.
-
memcpy?
-
memcpy?
Tambien, mientras no te pases del buffer y el ultimo byte sea un 0, no problem.