C/Visual C - Char y puntero a char...

 
Vista:
Imágen de perfil de SoyMoncho
Val: 47
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Char y puntero a char...

Publicado por SoyMoncho (42 intervenciones) el 30/08/2017 16:45:57
Yo declaro/defino :
1
2
char texto[]="Yo los conozco, son ocho los monos: Pocho, Toto, Cholo, Rocho, Moncho, Rodolfo, Otto, Pololo. Son todo trolos...son todo carolos, otros son locos, yo los conozco, no los soporto. Pocho Orozco: Odontólogo ortodoxo, doctor Como Borocotó";
    pc = texto;
Luego llamos al void:

1
Recorrido2Char(&pc, strlen(texto) );

Donde el void es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Recorrido2Char(char *pcp[], int intsize)
{
        int longitud=0;
        char ccTxx[MAXCHARF]={0x00};
        memcpy(ccTxx, NULL, 1);
 
        memcpy(ccTxx, *pcp, MAXCHARF);
        while (*pcp != '\0') {
                printf( "%c\n", ccTxx[longitud] );
                longitud++;
                pcp++;                    /* Vamos a la siguiente letra */
        }
        printf( "COPIADO \"%s \n", ccTxx);
}

y el printf:
1
printf( "%c\n", ccTxx[longitud] );

Solo me muestra hasta ....Cholo, Rocho, Mo" es decir 65 caracteres
PORQUE?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Char y puntero a char...

Publicado por Tom (619 intervenciones) el 30/08/2017 16:52:40
¿ Qué es MAXCHARF ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de SoyMoncho
Val: 47
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Char y puntero a char...

Publicado por SoyMoncho (42 intervenciones) el 30/08/2017 16:55:01
un define

1
#define  MAXCHARF   2048
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Char y puntero a char...

Publicado por Tom (619 intervenciones) el 30/08/2017 17:46:49
Pues vete tú a saber ... ¿ eso que has pegado compila ? porque no parece muy correcto.
¿ Lo estás haciendo así de enrevesado por algo en especial ?
Esto debería cascar al ejecutar:

memcpy(ccTxx, NULL, 1);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de SoyMoncho
Val: 47
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Char y puntero a char...

Publicado por SoyMoncho (42 intervenciones) el 30/08/2017 17:49:34
Compila y ejecuta sin problemas ( trabajo bajo Aix) y anduvo siempre
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de SoyMoncho
Val: 47
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Char y puntero a char...

Publicado por SoyMoncho (42 intervenciones) el 30/08/2017 18:05:49
Lo probe en QNX con watcom c y no compila nada, asi decidi cambiar algunas cosas:

Ahi va la solución... ya lo resolvi...

1
2
3
4
char *pc;
    char texto[]="Yo los conozco, son ocho los monos: Pocho, Toto, Cholo, Rocho, Moncho, Rodolfo, Otto, Pololo. Son todo trolos...son todo carolos, otros son locos, yo los conozco, no los soporto. Pocho Orozco: Odontólogo ortodoxo, doctor Como Borocotó";
    pc = (char *) malloc(987);
    pc = texto;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void Recorrido2Char(char *pcp[], int intsize)
{
        int EndOfLine = 0;
        int i         = 0;
        int longitud  = 0;
        char ccTxx[MAXCHARF]={0x00};
        memcpy(ccTxx, NULL, 1);
 
        memcpy(ccTxx, *pcp, MAXCHARF);
        printf( "COPIADO: %s \n", ccTxx);
        EndOfLine = 0;
	do
	{
		printf( "%c\n", ccTxx[longitud] );
		if(ccTxx[i] == '\0')
                {
			EndOfLine = 1;
                        printf( "Ultima Letra fue: [ %c ] \n", ccTxx[longitud-1] );
                }
		i++;
                longitud++;
	}while(!EndOfLine);
        printf( "COPIADO: %s \n", ccTxx);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar