פורסם 2006 בינואר 1819 שנים שמרתי כתובת לפונקציה במצביע מסוג *void.איך אני יכול לקרוא (להפעיל) לפונקציה באמצעות המצביע בשפת C?
פורסם 2006 בינואר 1819 שנים פשוט מאוד, אם למשתנה קוראים a אז תפעיל a(the vars according to the prototype);(יישור לשמאל).השאלה גם נשאלה בעבר ונענתה, נסה לחפש.
פורסם 2006 בינואר 1819 שנים מחבר void my_function( void ){ printf( "Hello World!\n" );}void main( void ){ void *ptr = &my_function; void *func = ptr; func();}אני מקבל הודעת שגיאה:'func' : not a function
פורסם 2006 בינואר 1819 שנים http://hwzone.co.il/community/index.php?topic=156790.msg1322334#msg1322334
פורסם 2006 בינואר 1819 שנים מחבר זה לא עובד.אם אני מגדיר את func כך:void *func();אז אני מקבל הודעת שגיאה על ההשמה ל-func:'=' : left operand must be l-value
פורסם 2006 בינואר 1819 שנים מחבר הצלחתי! void (*func)() = NULL;func = &my_func;func();printf( "Func = %d\n", func ); לגבי הקוד מקור של הבעיה, אני יכול לשלוח לך אותו באימייל (תשלח לי בפרטי). הכל עובר קומפילציה ורץ, אבל לא קורה כלום.
פורסם 2006 בינואר 1819 שנים מחבר <return value> (*<function_holder_name>)(<arguments>);היה חסר לי סוגריים. הפעם האחרונה שהתעסקתי עם מצביעים לפונקציות היתה לפני הרבה זמן. :-\
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.