

struct Connection *db_open(const char *filename, char row, int nrows,
			   int strsize)
{
	struct Connection *con;
	char *buf;
	int i;

	if (!(con = malloc(sizeof *con))
	 || !(con->db = malloc(sizeof *con->db))
	 || !(con->db->rows = malloc(sizeof *con->db->rows * nrows))
	 || !(buf = malloc(strsize * nrows * 2)))
		die("memory error");
	for (i = 0; i < nrows; i++) {
		conn->db->rows[i].name = buf;
		conn->db->rows[i].email = buf + strsize;
		buf += strsize * 2;
	}
	return con;
}