aboutsummaryrefslogtreecommitdiff
path: root/dot_vim/c-support/codesnippets/calloc_int_matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'dot_vim/c-support/codesnippets/calloc_int_matrix.c')
-rw-r--r--dot_vim/c-support/codesnippets/calloc_int_matrix.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/dot_vim/c-support/codesnippets/calloc_int_matrix.c b/dot_vim/c-support/codesnippets/calloc_int_matrix.c
new file mode 100644
index 0000000..e21215b
--- /dev/null
+++ b/dot_vim/c-support/codesnippets/calloc_int_matrix.c
@@ -0,0 +1,35 @@
+
+/*
+ * === FUNCTION ======================================================================
+ * Name: calloc_int_matrix
+ * Description: Allocate a dynamic int-matrix of size rows*columns; return a pointer.
+ * =====================================================================================
+ */
+int**
+calloc_int_matrix ( int rows, int columns )
+{
+ int i;
+ int **m;
+ m = calloc ( rows, sizeof(int*) ); /* allocate pointer array */
+ assert( m != NULL ); /* abort if allocation failed */
+ *m = calloc ( rows*columns, sizeof(int) ); /* allocate data array */
+ assert(*m != NULL ); /* abort if allocation failed */
+ for ( i=1; i<rows; i+=1 ) /* set pointers */
+ m[i] = m[i-1] + columns;
+ return m;
+} /* ---------- end of function calloc_int_matrix ---------- */
+
+/*
+ * === FUNCTION ======================================================================
+ * Name: free_int_matrix
+ * Description: Free a dynamic int-matrix.
+ * =====================================================================================
+ */
+void
+free_int_matrix ( int **m )
+{
+ free(*m); /* free data array */
+ free( m); /* free pointer array */
+ return ;
+} /* ---------- end of function free_int_matrix ---------- */
+