Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Duda con punteros

Estas en el tema de Duda con punteros en el foro de C/C++ en Foros del Web. Hola. Tengo unas dudas con respecto a punteros, saque este ejemplo de un libro de como copiar un array a otro con punteros: Código: #include ...
  #1 (permalink)  
Antiguo 14/04/2009, 13:14
 
Fecha de Ingreso: octubre-2008
Mensajes: 50
Antigüedad: 15 años, 6 meses
Puntos: 2
Duda con punteros

Hola.
Tengo unas dudas con respecto a punteros, saque este ejemplo de un libro de como copiar un array a otro con punteros:

Código:
#include <iostream>

using namespace std;

main()
{
	char a[]= "string",
	     b[10],
	     *pA = a,
	     *pB = b;

	while(*pA != '\0')
	{
		*pB = *pA++;
	}

	cout << b;

}
y mis dudas es lo siguiente:

porque al imprimir me muestra simbolos raros antes de mostrar la cadena imprime algo asi

oé÷¾o$string

segundo, si cuando hago esto *pB estoy apuntando al primer caracter del arreglo b porque nunca se incrementa el puntero y siempre sigue asignandose igual..

saludos gracias
  #2 (permalink)  
Antiguo 14/04/2009, 13:42
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: Duda con punteros

Ya lo he compilado tal como esta y es evidente que no funciona.
Tu lo has dicho, hay que aumentar pB tambien. Una vez correjido eso, funciona perfectamente.

Te dejo el codigo correjido.

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     char a[]= "string", b[10], *pA = a, *pB = b;
  8.  
  9.     while(*pA != '\0')
  10.     {
  11.         *pB = *pA++;
  12.         pB++;
  13.     }
  14.     cout << b;
  15. }

Saludos
  #3 (permalink)  
Antiguo 14/04/2009, 14:18
 
Fecha de Ingreso: octubre-2008
Mensajes: 50
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Duda con punteros

pues lo estoy haciendo tal cual como lo pusiste y sigue dando error

lo que me muestra de output:
cadena¿Ðcadena

estoy usando gcc 4.2.4
  #4 (permalink)  
Antiguo 15/04/2009, 05:26
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Duda con punteros

Esto copia una cadena en realidad (sino necesitas usar el tamaño del array en algun lado) ... las cadenas terminan en 0 y este bucle se ejecuta MIENTRAS el elemento a copiar no sea 0, eso quiere decir que no habra cero terminador en la segunda cadena.

Código:
while(*pA != '\0')
{
	*pB++ = *pA++;
}
*pB = 0;
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:56.