פורסם 2004 באוקטובר 1121 שנים אני רוצה לבנות באמצע התוכנית מערך דו מימדי...עכשיו אני יודע איך אני בונה מערך חד מימדי באמצע התוכנית ע"י הקצאת זכרון דינמית...איך ע"י הקצאת זכרון דינמתי אני יכול לבנות מערך דו מימדי בעזרת מצביעים....נא להסביר טוב ואם אפשר דוגמא קטנה אשמח מאוד........
פורסם 2004 באוקטובר 1121 שנים הדבר היחיד שאתה יכול לעשות זה מארך של מצביעים בגודל N שכל אחד מהם מצביע למארך בגודל Mבקצרהint **p = (int**)malloc(n*sizeof(int*));for(int i=0;i<n;i++) p = (int*)malloc(m*sizeof(int));אני בטוח שתסתדר מפה
פורסם 2004 באוקטובר 1121 שנים מחבר זה מה שניסיתי לעשות לפני אבל משום מה המהדר סימן לי שגיאה....בין הFOR להמשך אני ינסה שוב ותודה על העזרה.......
פורסם 2004 באוקטובר 1121 שנים אם זה צריך להיות ansi-c אז הבעיה היא שהגדרתי משתנה בתוך הלולאה, מה שאסור ב-ansi-cתגדיר את i בחוץ כךint i;int **p = (int**)malloc(n*sizeof(int*));for(i=0;i<n;i++) p = (int*)malloc(m*sizeof(int));
פורסם 2004 באוקטובר 1121 שנים מחבר holy זאת חלק מהתוכנית שלי אז תראה מה לא בסדר בה.#include <stdio.h>#include <alloc.h>void main(){int i,total;int **line;printf("please insert the length of the square");scanf("%d",&total);line=(int**)malloc(total*sizeof(int*));for (i=0,i<total,i++)line=(int*)malloc(total*sizeof(int);}
פורסם 2004 באוקטובר 1121 שנים השגיאות שלך הן שגיאות שכל קומפיילר אפילו העלוב ביותר יגיד לך בדיוק מה הבעיהב-for השתמשת בפסיק במקום בנקודה פסיק להפריד בין שלושת האיבריםבשורה האחרונה חסר לך סוגר לפתוח של ה-mallocדרך אגב - משתמשים ב-stdlib.h ולא ב-alloc.h.
פורסם 2004 באוקטובר 1121 שנים מחבר השגיאות שלך הן שגיאות שכל קומפיילר אפילו העלוב ביותר יגיד לך בדיוק מה הבעיהב-for השתמשת בפסיק במקום בנקודה פסיק להפריד בין שלושת האיבריםבשורה האחרונה חסר לך סוגר לפתוח של ה-mallocדרך אגב - משתמשים ב-stdlib.h ולא ב-alloc.h.אווווווווו התבלבתי לא שמתי לבב אווווווווווווף הסוגריים של הMALLOC בסוף נפל משום מה אבל זה היה.והולי בוא נלמד אותך משהו(אני לא מאמין שאני אומר את זה).....alloc----dynamic memory allocation שזה אומר שזה משמש להקצאות זכרון דינמיות ולא כמו שאתה אומר stdlibתודה על העזרה הולי אתה מצויין.
פורסם 2004 באוקטובר 1121 שנים אני יודע טוב טוב מה זה mallocב-ansi-c לא קיימת ספריה alloc.h, קיימת ספריה sdtlib.h בה יש את כל הפונקציות של הזיכרון (malloc/calloc/free ועוד כל מיני)נסה קומפיילר אחר ותראה שוא מוציא לך שגיאה ש-alloc.h לא קיים (לפחות לפי מיטב ידעתי)
פורסם 2004 באוקטובר 1121 שנים מחבר אני יודע טוב טוב מה זה mallocב-ansi-c לא קיימת ספריה alloc.h, קיימת ספריה sdtlib.h בה יש את כל הפונקציות של הזיכרון (malloc/calloc/free ועוד כל מיני)נסה קומפיילר אחר ותראה שוא מוציא לך שגיאה ש-alloc.h לא קיים (לפחות לפי מיטב ידעתי)איך חשדתי בך...ואני מכיר את הספרייה STDLIB יש בה פונקציות לטיפול במחרוזות.......וכל הפונקציות שאמרת לפחות אצלי מופיעים בALLOC.H ואני מכיר אותם זה כולם להקצות זכרון ולשחרר זכרון(FREE)
פורסם 2004 באוקטובר 1121 שנים טיפול במחרוזות יש ב-string.hאיזה קומפיילר יש לך?עריכה - אלה הפונקציות שיש ב-stdlib.hhttp://www.cplusplus.com/ref/cstdlib/וכאן יש לך את כל הספריות הראשיות ב-C (יש עוד כמה קטנות)http://www.cplusplus.com/ref/indexr.html
פורסם 2004 באוקטובר 1121 שנים מחבר יש לי בעיה עוד(זה התוכנית הראשונה שאני כותב בC וגם עדיין לא סיימתי לקרוא את הספר...).אני רוצה לעשות תוכנית שתיצור ריבוע(מערך דו מימדי) שכל האלכסונים שלו העמודות והטורים שווים.עכשיו אני מקבל את אורך הריבוע...נגיד אורכו 4 אז יש 16 משבצות.עכשיו התוכנית תמקם בצורה רנדומלית את המספרים מ1 עד16 כל פעם היא תבדוק שהמספר לא קיים כבר במערך..במידה וקיים היא תנסה מספר אחר עד שתצליח...עכשיו אני ישים את כל הקטע של התוכנית שבו היא קולטת את המספרים.#include <stdio.h>#include <alloc.h>#include <stdlib.h>void main(){int i,total,j,x,c;int **line,*cheak;randomize();printf("please insert the length of the square");scanf("%d",&total);line=(int**)malloc(total*sizeof(int*));for (i=0;i<total;i++)line=(int*)malloc(total*sizeof(int));cheak=(int*)calloc(total*total,sizeof(int));for(i=0;i<total;i++)for(j=0;j<total;j++) {error:x=random(total*total+1); for(c=0;c<(i*total+j);c++) if (cheak[c]=x) goto error;line[j]=x;cheak(i*total+j)=x; } }
פורסם 2004 באוקטובר 1221 שנים מחבר אל תשתמש בכלל ב-goto, זה התכנות הכי גרוע שיכול להיותi know that but i cant do nothing מה אתה מציע לעשות ואיפה הטעויות שלי............
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.