diff --git a/parallel.cu b/parallel.cu
index 9bb73d092fb4412851ea9806c39fc3281680f68f..49cef8fa4e650f33e4b335ddff2886c372fe32aa 100644
--- a/parallel.cu
+++ b/parallel.cu
@@ -93,9 +93,6 @@ int main (int argc, char **argv) {
     
     /* Read number of vertices */
     printf("Number of vertices (n): "); scanf("%d", &n);
-
-    cudaMallocManaged(&matrix, n*sizeof(long));
-    cudaMallocManaged(&result, n*sizeof(long));
     
     matrix = initialize_matrix(13517142, n);
     printf("\nGenerated %d * %d matrix.\n", n, n);
@@ -150,7 +147,8 @@ void write_output(long matrix[], int n_row, int n_col, double time) {
 
 long *initialize_matrix(int random_number, int n) {
     /* Initialize variables */
-    long *matrix = (long *)malloc(sizeof(long) * n*n);
+    long *matrix;
+    cudaMallocManaged(&matrix, n*n*sizeof(long));
 
 	srand(random_number);
 	for (int i = 0; i < n; i++) {
@@ -168,7 +166,8 @@ long *initialize_matrix(int random_number, int n) {
 }
 
 long *initialize_result(int n) {
-    long *result = (long *)malloc(sizeof(long) * n*n);
+    long *result;
+    cudaMallocManaged(&result, n*n*sizeof(long));
 
     for (int i = 0; i < n; i++) {
         for (int j = 0; j < n; j++) {