Hola a todos, estoy intentando hacer un programa que lea varios numeros del teclado como un byte (por ejemplo un 90 que corresponde a una Z en ASCII), este dato se recoge en un array tipo char y aqui está el problema que explico mas abajo. Despues estos datos guardados en el array se escriben en formato binario. Ya se que se podria hacer todo en una funcion pero tengo que hacerlo asi por separado para hacer otros avances más adelante.
El problema en sí está en : strcpy(frase,cadena); que da fallo de segmentacion, imagino que porque una esta como puntero y la otra como array. He probado a hacerlo asi tb : frase
= data; y salta aqui el fallo de segmentacion y tb con cadena = itoa(data); y da error de compilacion
Espero que me puedan ayudar porque ya no se que mas probar. Muchisimas gracias
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int enviaByte(unsigned int data){
int i;
unsigned int data_env;
data_env=data;
for (i=0;i<8;i++){ //DATOS
if (data_env
& 0x01) { printf("1"); } data_env = data_env >> 1;
}
}
void enviaString(char *frase,int longitud){
unsigned int data;
int s;
int i;
printf("LONGITUD: %i rn",longitud
); //char cadena[longitud];
//strcpy(cadena,frase);
// strncat(cadena, "n", 1);
for (i=0;i<longitud;i++){
data=frase[i];
enviaByte(data);
}
}
int leeByte()
{
int i, data; // hay que cambiarlo por un uint8_t
data = 90;
/*
for (i = 0; i <= 7; i++) {
data <<= 1;
if (bit_is_set (TWI_PIN_SDA, bSDA))
data++;
}
*/
return data;
}
char* leeString(){
int data;
char * frase = "aaaaa";
int i;
int longitud;
char cadena[longitud];
printf("LONGITUD2: %i rn",longitud
);
for (i=0;i<5;i++){
data = leeByte();
printf("data: %c rn", (char)data
); cadena[i] = data;
}