את כל התשובות ניתן למצוא בתיעוד של הפונקציה
שזמין ב-man וגם באינטרנט, אבל אחזור עליהן כאן לשם נוחות:
 
1. כן, ניתן להשתמש ב-realloc כמו ב-malloc אם מעבירים לה NULL בתור הפרמטר הראשון היא מתפקדת בדיוק כמו malloc.
 
2. בהמשך ל-1, הפונקציה מחזירה NULL בשני מקרים:
א) אם היא נכשלת בהקצאה כמו malloc
ב) אם העברת בתור פרמטר שני גודל 0, והפונקציה עשתה עבודה של free - כלומר שחררה זיכרון במקום להקצות.
 
3. השורה שלך לא תקינה.
זה חוקי מבחינת שפת C להתעלם מערך חוזר, אבל אם תקרא בתיעוד תראה שכאשר realloc לא יכולה להקצות מחדש במקום הנתון (למשל, כי אין שם בלוק רציף בגודל המתאים) היא עשויה להעביר את כל הזיכרון למקום אחר, ואז להחזיר מצביע למקום החדש שיהיה שונה מהמצביע שהעברת לה בתור הפרמטר הראשון.
 
כאמור, זה לא תמיד קורה, וזה תלוי במצב הזיכרון כשהתוכנה שלך רצה וגודל ההקצאות שאתה מנסה לעשות, אז לפעמים השורה שלך תצליח, ולפעמים היא תגרום לזליגת זיכרון ודריסת נתונים.
 
אל תשתמש בה!