עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

שפת c - הקצאות דינאמיות

Featured Replies

פורסם
#include "stdlib.h"
int main()
{
 int **p;
 p = (int**)malloc(3*sizeof(int*));
 free(*p);//ok. but why?
 free(*p);//ok. but why?
 free(p);//ok. but why?
 free(p);// Run time error
 return 0;
}

לא מבין מדוע התכנית תקינה ורק בשורה האחרונה יש שגיאה בזמן ריצה ולא לפני כן. משהו בניהול הזיכרון הדינאמי שאני מפספס?

 

פורסם

כי עם free(NULL) לא קורה כלום

פורסם
  • מחבר

איפה יש פה נאל? מאלוק נותן ערכי זבל. לא?

ואם נאל לא עושה כלום אז למה יש שגיאה בפריי האחרון?

פורסם

אין לדעת מה היה לפני.

 

פריי אחד לפני אחרון מוחק ערך אמיתי, את ה-malloc.

והאחרון נותן שגיאה כי כבר מחקת אותו

פורסם
  • מחבר

זה מובן מה שהסברת. אז נותר לי להבין למה 2 ה free הראשונים תקינים

פורסם
ציטוט של ronen062013

אז נותר לי להבין למה 2 ה free הראשונים תקינים

כבר הסברתי. מאלוק לא מאתחל ל-0 אך אין זה אומר שלא הוקצה זיכרון מאותחל.

פורסם
  • מחבר

אז למה ה free השני לא עושה שגיאה כמו ה free הרביעי. ובכלל, אם כבר נעשה free על  *p אז למה מתאפשר לעשות free על p עצמו?

פורסם

free(0); לא מקריס כי יש בדיקה בפנים הפונקציה.

*p מבצע קריאה מבפנים המערך. ערך הארגומנט הינו 0.

p עצמו הינו הערך שמתקבל מ-malloc והינו מצביע למערך.

פורסם
  • מחבר

מובן. תודה רבה!!

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.