duca en lenguaje CCS

Reply to
Carmelo J. Morales Muñoz
Loading thread data ...

Carmelo J. Morales Muñoz escribió:

Suponiendo que el tipo string sea un array de char (no conozco CCS), puedes hacer:

char c, Cadena[5];

c = 'q'; Cadena[0] = c; Cadena[1] = 0;

Tambien:

sprintf(Cadena, "%c", c);

char miArreglo[30] = "Ya esta inicializado";

Normalmente puedes hacer char arreglo[] = "Test", y el compilador se encarga de darle el tamaño necesario para almacenar la cadena, en este caso 5. Si no lo inicializas, el compilador debe considerarlo como un tipo incompleto y no dar error, esperando a que se complete posteriormente.

La memoria disponible. Comprueba en la documentación de CCS si la memoria que utiliza es ROM o RAM, depende del compilador. Puedes utilizar el modificador const para indicar al compilador que lo quieres en ROM, aunque no todos los compiladores se portan igual.

--
Saludos
Miguel Giménez
Reply to
Miguel Gimenez

un manualillo básico de C seguramente no te vendría mal, porque es de suponer que la ayuda de tu compilador sono explicará lo que sea diferencte de un c estandard. yo no uso C en los pics, pero al menos en el c normal (por no decir estandard, que son palabras mayores) un string es un array (arreglo) de bytes acabado en el asci 0, de modo que para convertir un caracter (byte leido del teclado) en string, lo pones en un array así por ejemplo:

char str[2]; char c;

..... str[1] = 0; while(1){ c = getchar(); str[0] = c; printf(str); }

//Inicializar un arreglo: char str[20]="20 bytes"; //Idem sin especificar tamaño char str[]="Mejor así";

Reply to
Nolo Pongo
Reply to
Carmelo J. Morales Muñoz
Reply to
Carmelo J. Morales Muñoz

En su dia ya te lo dije, y te lo repito strcpy no es para inicializar arrays de char(no existen las strings en C), sino memset.

Examples: memset(arrayA, 0, sizeof(arrayA));

memset(arrayB, '?', sizeof(arrayB));

memset(&structA, 0xFF, sizeof (structA));

char bla[4000];

memset(bla, '\0', sizeof(bla));

y ya tienes la preciosa cadena inicializada a \0, caracter ascii 0, lo que significa que esa cadena no contiene ningun caracter.

Pero creo que eso ya te lo han dicho... y yo he tardado 15 minutos en escribir el mensaje XDD con un par de dedos de una mano se me hace lento XD

Es tipico el error en C, porque otros lenguajes son menos sutiles en este aspecto pero C es muy estricto, sino inicializas tu no lo hara el, sencillo eh?. Si tu tienes una cadena de 9 caracteres, y usas 8, el ultimo tiene que ser un '\0' o C no trabajara bien con esa array de 9 chars. Para eso que quieres hacer ahi una forma mucho mas sencilla:

sprintf(comando, "%c\0", caracter);

--

formatting link
La pagina de es.ciencia.electronica

Saludos.

"Carmelo J. Morales Muñoz" escribió en el mensaje news:t6Xle.309591$ snipped-for-privacy@news-reader.eresmas.com...

Reply to
RooT
Reply to
Carmelo J. Morales Muñoz
Reply to
Carmelo J. Morales Muñoz
Reply to
Carmelo J. Morales Muñoz
Reply to
Carmelo J. Morales Muñoz
Reply to
Carmelo J. Morales Muñoz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.