הדרך הרגילה (והפשוטה גם?):
קוראים לפונקציית void שבה משנים את המערך. אם למשל ברצונך לשלוח מערך []a לפונקציה ולהחזיר את המערך ל- []b אז הגדרת הפונקציה תהיה כך:
void arr_func(char x[], char y[]);
מהתוכנית תקרא לפונקציה כך
char a[N], b[M]; .. .. .. arr_func(a,b);
כל שינוי שיתבצע במערך b בתוך הפונקציה יהווה שינוי על מערך b של התוכנית גם, כמו שלמדנו שמערכים שנשלחים לפונקציה אינם נשלחים לכתובות זמניות חדשות, וכל שינוי במערך בפונקציה הוא ישיר למערך בתוכנית.