tengo este códigoequivalente de C++ para memset en char *
char * oldname = new char[strlen(name) + 1];
memcpy(oldname,name,strlen(name) + 1);
name = new char[strlen(oldname) + strlen(r.name) + 1];
memset(name, '\0', strlen(name));
strcat(name,oldname);
strcat(name," ");
strcat(name,r.name);
entiendo que es un no, no utilizar memcpy y memset pero no he entendido muy bien cómo utilizar esto en C++, preferiblemente sin std.
¿Alguien sabe? Gracias.
Parece que puede haber asignado un personaje demasiado poco para el nombre. Y no veo por qué llenas la matriz con ceros en primer lugar, si luego la sobreescribes. (El primer strcat solo requiere que el primer carácter sea nulo, strcpy no requeriría ni siquiera eso. Ambas funciones anulan la cadena por ti). Ah, y 'strlen (name)' no funcionará muy bien, a menos que el ¡la cadena ya contiene una cadena de caracteres terminada correctamente! No hace más que contar todos los caracteres hasta el primer carácter nulo. – UncleBens