C/Visual C - CORE GENERADO

 
Vista:

CORE GENERADO

Publicado por A (3 intervenciones) el 26/02/2016 20:06:11
Hola, estoy haciendo un override de esta función de C, que es el cat, pero me da un fallo tal que : ('CORE' GENERADO). Sé que quiere decir que se están accediendo a posiciones de memoria en exceso, pero no consigo ver el fallo. AYUDA :( (mi_strlen es la versión propia del strlen, cuyos resultados son correctos). Esta función concatena dos cadenas.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
char* mi_strcat(char* s1,char*s2){
   char* aux;
  int i;
  int y;
  aux= (char*)malloc((mi_strlen(s1)+mi_strlen(s2))* sizeof(char*));
 
  for(i=0;i<mi_strlen(s1);i++){
    *(aux+i)==*(s1+i);
 
  }
  for(i=mi_strlen(s1),y=0;y<mi_strlen(s2);i++,y++){
    *(aux+i)==*(s2+y);
 
  }
  s1=aux;
  return s1;
 
 
 
}
 
}
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

CORE GENERADO

Publicado por Tom (619 intervenciones) el 26/02/2016 21:49:44
Lo has copiado tan, tan mal, que mejor buscas tú las diferencias:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char* mi_strcat(char* s1,char*s2) {
  int i;
  int y;
  char *aux = (char*)malloc(mi_strlen(s1) + mi_strlen(s2) + 1);
 
  if(aux) {
    for(i = 0; i < mi_strlen(s1); i++) {
      *(aux + i) = *(s1+i);
    }
    for(i = mi_strlen(s1), y = 0; y < mi_strlen(s2); i++, y++) {
      *(aux + i) = *(s2 + y);
    }
    aux[i] = 0;
  }
  return aux;
}
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
sin imagen de perfil

CORE GENERADO

Publicado por anonymous (12 intervenciones) el 27/02/2016 19:53:04
Ya te han dado la respuesta, yo solo quiero recalcar algo. No uses strlen dentro de la condicion del for (i < mi_strlen(s1)), ya que en cada repeticion este se estara calculado, lo cual hara lento el codigo si mi_strcat se llama muy seguido
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