[C con Clase] [Bulk] arreglo de apuntadores

Ismael Camarero icamarero98 en hotmail.com
Jue Nov 15 18:57:00 CET 2007


También te podría valer:

#include 
void upcase(char *s);
int main(int argc, char *argv[])
{
    char a[]="lolo";
    char b[3][6]={"hola1","hola2","hola3"};
    upcase(a);             
    upcase((*(b+0)));     
    printf("%s\n",a);
    printf("%s\n",b);
    system("PAUSE");
     return 0;
}

void upcase(char *s)
{
   while (*s!='\0')
    {
     if (*s>='a' && *s<='z')
       *s-=32;
     *s++;
    }
}

Saludos





>
> Hola.
> El problema que existe es que con:
> char *b[3]={"hola1","hola2","hola3"};
> tienes un puntero que apunta a 3 caracteres.
>
> Tienes 2 opciones:
>
> Crear 3 punteros con las palabras
> char b[3][6]={"hola1","hola2","hola3"};
>
> O dimensionar el puntero con el numero de palabras que quieras
>
> char *b[3]; // Crear un array de 3
> punteros
> b[0] = (char*) malloc(6); // Reservar 6 char para el puntero 1
> b[0] = "hola1"; // Insertar 6 char
> b[1] = (char*) malloc(6); // Reservar 6 char para el puntero 2
> b[1] = "hola2"; // Insertar 6 char
> b[2] = (char*) malloc(6); // Reservar 6 char para el puntero 3
> b[2] = "hola2"; // Insertar 6 char
>
> NOTA: obviamente esto se deberia de hacer mediante un bucle para mayor
> numero de punteros.
>
> Un puntero tan solo es una direccion de memoria, para insertar algo en un
> puntero tienes primero que reservarle una zona de memoria.
>
> Un saludo.
>
> .: ZeLion :.
>>-----Mensaje original-----
>>De: cconclase-bounces en listas.conclase.net [mailto:cconclase-
>>bounces en listas.conclase.net] En nombre de rnapoles en ipihlg.rimed.cu
>>Enviado el: miércoles, 14 de noviembre de 2007 20:18
>>Para: Lista de correo sobre C y C++
>>Asunto: [Bulk] [C con Clase] arreglo de apuntadores
>>
>>Salu2 lista llevo un pequeño tiempo aprendiendo a programar en C con unos
>>libros que me he conseguido el programa que muestro a continuación
>>no da ningún error de sintaxis el problema es en tiempo de ejecución.
>>supongo que sea que no deja modificar el arreglo de punteros
>>en ese caso que podría hacer para que la función upcase lograra
>>modificar dicho arreglo
>>
>>gracias de antemano.
>>
>>#include 
>>void upcase(char *s);
>>
>>int main(int argc, char *argv[])
>>{
>>char a[]="lolo";
>>char *b[3]={"hola1","hola2","hola3"};
>>upcase(a); //aqui todo ok
>>upcase(b[2]); //El problema es aqui
>>printf("%s\n",a);
>>printf("%s\n",b);
>>system("PAUSE");
>> return 0;
>>}
>>
>>void upcase(char *s)
>>{
>>while (*s!='\0')
>>{
>>if (*s>='a' && *s<='z')
>>*s-=32;
>>*s++;
>>}
>> }
>>
>>_______________________________________________
>>Lista de correo Cconclase Cconclase en listas.conclase.net
>>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>>Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/



Más información sobre la lista de distribución Cconclase