Inicio
Buscar
Ingresar
Registrarse
Starfield: el juego que revolucionará el espacio y la tecnología
Hack x Crack - Comunidad de Seguridad informática
»
Programación
»
C / C++
»
[C] Funciones de memoria de la biblioteca de manipulación de cadenas.
Imprimir
Páginas: [
1
]
Ir Abajo
Autor
Tema: [C] Funciones de memoria de la biblioteca de manipulación de cadenas. (Leído 4580 veces)
Pino1952
Visitante
[C] Funciones de memoria de la biblioteca de manipulación de cadenas.
«
en:
Diciembre 11, 2015, 08:38:33 pm »
Hola, que tengan un muy buen día.-
La consulta es porque con el manual con el que estoy estudiando c no da muchas explicaciones de estas funciones y en Internet no pude encontrar texto que profundicen sobre el tema(por lo menos en Español).-
Hay texto que dicen lo que expongo a continuación y otro que no, saber cuál es la diferencia al utilizar memcpy o strncpy, espero que me digan sus conocimientos o me indiquen alguna página que profundice sobre el tema,-
Saludos.
Daniel
«
Última modificación: Diciembre 11, 2015, 09:28:40 pm por Pino1952
»
En línea
ravenheart
{ L7 } Juanker
Mensajes: 1359
Todos mis mensajes están bajo la licencia WTFPL v2
Re:[C] Funciones de memoria de la biblioteca de manipulación de cadenas.
«
Respuesta #1 en:
Diciembre 11, 2015, 09:40:05 pm »
Lo primero es que las versiones seguras de strcpy (como strncpy) son recientes, antiguamente (hace no mucho si querías ciertas garantías de portabilidad) existían solo strcpy y memcpy. La primera copia cadenas, y funcionaba copiando hasta el carácter NULL final. Esto es un problema porque era necesario saber cuánto ocupaba la cadena, y si no hay suficiente espacio en el buffer destino, NO hacer la llamada, así que era muy engorroso (si añadimos que recuperar la longitud de una cadena en C tiene coste lineal, es prohibitivo para ciertas aplicaciones.
Por eso surgió strncpy, que le dices el tamaño de tu buffer, y copiará la cadena, pero si ocupa más del tamaño que le dices, para ahí.
A memcpy, por el contrario, le indicas cuantos bytes quieres copiar, y copiará siempre esa cantidad de bytes independientemente del contenido (salvo error grave, como que intentes acceder a memoria protegida o similar).
Resumiendo:
strncpy copia una cadena, y le tienes que decir el tamaño del buffer destino para que pare si la cadena es más larga.
memcpy copia el bloque de memoria del tamaño que le digas.
En línea
You do not need hope if you have drama to back you up.
Pino1952
Visitante
Re:[C] Funciones de memoria de la biblioteca de manipulación de cadenas.
«
Respuesta #2 en:
Diciembre 13, 2015, 06:57:40 pm »
Hola ravenheart.-
Muy buena explicación, con esto ya puedo ir formándome una idea sobre el tema.-
Saludos.
Daniel
En línea
elinsoluble
{ L0 } Ñuub
Mensajes: 7
Re:[C] Funciones de memoria de la biblioteca de manipulación de cadenas.
«
Respuesta #3 en:
Diciembre 14, 2015, 04:26:14 pm »
Me intereso el texto.
Me podrias pasar el nombre del manual?
Desde ya muchas gracias.
En línea
Pino1952
Visitante
Re:[C] Funciones de memoria de la biblioteca de manipulación de cadenas.
«
Respuesta #4 en:
Diciembre 14, 2015, 05:44:26 pm »
Hola elinsoluble.
http://www.fiuxy.com/ebooks-gratis/430542-como-programar-c-c-y-java-deitel-deitel-4-edicion-espanol.html
No puedo decirte si es bueno o no porque es el único que leí, solo decirte que si haces todos los ejercicios que te proponen aprendes c a la perfección o desistís.-
Saludos y suerte.
Daniel
En línea
ravenheart
{ L7 } Juanker
Mensajes: 1359
Todos mis mensajes están bajo la licencia WTFPL v2
Re:[C] Funciones de memoria de la biblioteca de manipulación de cadenas.
«
Respuesta #5 en:
Diciembre 14, 2015, 07:59:03 pm »
No conozco ese libro. En general los Deitel son buenos, pero las traducciones a español no tanto.
Yo no recomendaría un libro para "C, C++ y Java", sobre todo mezclar el aprendizaje de C y C++ me parece muy peligroso, terminarás no diferenciando cuál es cuál.
Los libros específicos de C++ de los Deitel me gustan mucho, entre otras cosas porque huyen de partir de la base de C, lo enseñan desde el principio junto con algunas nociones de diseño orientado a objetos.
Dicho esto, allá cada uno.
«
Última modificación: Diciembre 15, 2015, 07:08:33 pm por ravenheart
»
En línea
You do not need hope if you have drama to back you up.
Imprimir
Páginas: [
1
]
Ir Arriba
Hack x Crack - Comunidad de Seguridad informática
»
Programación
»
C / C++
»
[C] Funciones de memoria de la biblioteca de manipulación de cadenas.
Va un mudo y le dice a un sordo: Hack x Crack usa cookies. Pues eso...
OK
Learn more