I need to create following struct using malloc

struct Map {
int **entries;
int rows;
int cols;
}
Map *map_create(int rows, int cols) {
  Map *that = cast(Map*)malloc(Map.sizeof);
  that.entries = cast(int**)malloc(rows * int.sizeof);
  foreach(row; 0..rows) {
    that.entries[row] = cast(int*)malloc(cols * int.sizeof);
  }
  that.rows = rows;
  that.cols = cols;
  return that;
}

I find that memory is collected when pointer is returned (from some of the entries). How do I prevent that? The code should behave as in C.
  • Malloc struct codenstuff via Digitalmars-d-learn

Reply via email to