hace poco empecé a sumergirme en este mundo de la programación. Claramente, estoy dando mis primeros pasos. Ahora, intentaba hacer un programa que resuelva sistemas de ecuaciones, pero en la entrada de datos ya tengo un problema cuya causa no logro identificar. Me alegraría bastante encontrar alguna respuesta.
La idea de la entrada de datos, es identificar cuantas ecuaciones tiene el sistema y, posteriormente, recoger cada una en una cadena (array) de caracteres. Luego, otra función se encarga de evaluar cada carácter de la cadena y decidir si es un coeficiente, una variable o un signo. Luego, almacena estos datos en una estructura que se crea para cada ecuación. La función que me da problemas es la que recoge la cadena de caracteres, pues cuando ejecuto el programa recibe hasta el sexto carácter y se finaliza por algún error:
introducir el código aquí
typedef struct ecua
{ /*cabecera del programa*/
int coefi[8];
char varia[8]; /*estructura para cada ecuacion*/
char sig[8];
}ecuacion;
void entrada(char**ecu);
int con1;
int con2;
int n;
int main() /* en la funcion main, declaro y defino punteros para trabajar con memoria dinamica*/
{
printf("Por favor, indique cuantas ecuaciones hay en el sistema a solucionar\n");
scanf("%d",&con1);
ecuacion *pun;
char *ec;
pun=(struct ecua*)malloc(sizeof(int)*8+sizeof(char)*16);
for(con2=1;con2<=con1;con2++)
{
if(con2>1)
{
pun=(struct ecua*)realloc(pun,(sizeof(int)*8+sizeof(char)*16));
} /*asigna memoria para la clasificación que se hará posteriormente en otra función*/
entrada(&ec);
}
return 0;
}
void entrada(char**ecu) /*no se cual es el error en esta funcion :( */
{
n=0;
*ecu=(char*)malloc(sizeof(char));
printf("introduzca la ecuacion %d. Para terminar, pulsa enter\n",con2);
*ecu[0]=getche();
while(*ecu[n]!=(13)) /*Mientras el caracter no sea enter,*/
{
n++;
*ecu=(char*)realloc(*ecu,sizeof(char));
*ecu[n]=getche();
}
return;
}