diff --git a/src/server/world.c b/src/server/world.c index cc112c3..1d79b1e 100644 --- a/src/server/world.c +++ b/src/server/world.c @@ -3,10 +3,10 @@ Room* wrld__create() { Room *rooms = malloc(WORLD_SIZE * sizeof(*rooms)); - for (unsigned int i = 0; i < WORLD_SIZE; i++) { - char strbuf[(int)log10(WORLD_SIZE) + 1 + 80]; - snprintf(strbuf, sizeof(strbuf), "Room name: %d",i); - + for (unsigned int i = 0; i < WORLD_SIZE; ++i) { + //char strbuf[(int)log10(WORLD_SIZE) + 1 + 12]; + char* strbuf = malloc(sizeof (char) * ((int)log10(WORLD_SIZE) + 1 + 12)); + snprintf(strbuf, sizeof (char) * ((int)log10(WORLD_SIZE) + 1 + 12), "Room name: %d",i+1); rooms[i].name = strbuf; rooms[i].description = strbuf; rooms[i].north = NULL; @@ -19,5 +19,9 @@ Room* wrld__create() { } void wrld__destroy(Room* rooms){ + for (unsigned int i = 0; i < WORLD_SIZE; ++i) { + free(rooms[i].name); + free(rooms[i].description); + } free(rooms); } diff --git a/src/server/world.h b/src/server/world.h index d3d962e..828dd03 100644 --- a/src/server/world.h +++ b/src/server/world.h @@ -1,6 +1,7 @@ #define WORLD_SIZE 100 #include +#include #include #include