Download presentation
Presentation is loading. Please wait.
1
פוינטרים ומבנים
2
אתחול והדפסת מערך #include int * readArray(int size){ int *a, i; a= (int *) malloc (size* sizeof(int)); if (!a) return NULL; for (i=0;i<size;i++) scanf("%d",a+i); return a; } void printArray (int * a, int size){ int i; for (i=0;i<size;i++) printf ("%d\n",*(a+i));/* a[i] */ }
3
שימוש ב main void main(){ int *arr, n; printf ("Enter size of array\n"); scanf("%d",&n); arr=readArray(n); if (arr==NULL) exit(0); printArray(arr,n); free(arr); }
4
מערך דו מימדי, האמנם? #include void main(){ char a2dim[4][3],i,j; strcpy(a2dim,"Hello world"); for (i=0;i<4;i++){ for (j=0;j<3;j++) printf("%c",a2dim[i][j]); printf("\n"); }
5
מערך דו מימדי באמצעות מצביעים int ** create2Dim(int rows, int cols){ int **a, i; if (!(a=(int **)(malloc (rows* sizeof (int *))))) return NULL; for (i=0;i<rows;i++) if (!(a[i]=(int *)(malloc (cols* sizeof (int))))) return NULL; return a; }
6
שחרור מערך דו מימדי דינאמי void free2Dim(int ** a, int rows){ int i; for (i=0;i<rows;i++) free(a[i]); free(a); }
7
מערך דו מימדי באמצעות מצביעים int ** create2Dim(int rows, int cols){ int **a, i; if (!(a=(int **)(malloc (rows* sizeof (int *))))) return NULL; for (i=0;i<rows;i++) if (!(a[i]=(int *)(malloc (cols* sizeof (int))))){ free2Dim(a,i); return NULL; } return a; }
8
מבנים
9
מבנה הסטודנט struct student{ char name[30]; long id; int grades[8]; };
10
יצירת סטודנט void main(){ struct student st1; strcpy (st1.name,"Shimon"); st1.id=1234; scanf ("%d",&st1.grades[0]); printf("name: %s, id: %d, grade: %d\n", st1.name,st1.id,st1.grades[0]); }
11
סוגי אתחול void main(){ struct student st1= {"Shimon",56689,{80,65,17}}; struct student st2; st2=st1; st1.name[2]='u'; st1.name[4]='a'; printf("%s\n",st1.name); printf("%s\n",st2.name); }
12
מבני הנקודה והמלבן typedef struct point{ double x; double y; }point; typedef struct rectangle{ struct point p1; struct point p2; }rectangle;
13
void main(){ point p, pt = {5.7,6.3}; rectangle rec1, rec2; p.x = 9; p.y = 17.1; rec1.p1 = pt; rec1.p2 = p; rec2.p1.x = 3.5; }
14
פונקציות עם מבנים point middle (point p1,point p2){ point p3; p3.x=(p1.x + p2.x)/2; p3.y=(p1.y + p2.y)/2; return p3; } void main(){ point p, pt = {5.7,6.3},pMid; p.x = 9; p.y = 17.1; pMid=middle(p,pt); }
15
מצביעים למבנים void main(){ struct student * p; p=(struct student *) malloc(sizeof(struct student)); if (!p) return; (*p).id=112233; p->id=112233; free(p); }
16
רשימה משורשרת typedef struct link{ int data; struct link * next; }link;
17
יצירת רשימה void main(){ link *head=NULL, *temp=NULL; int d; printf("Enter the list values:\n"); scanf ("%d",&d); while (d!=-1){ temp=(link *)malloc(sizeof(link)); if (!temp) break; temp->next=head; temp->data=d; head=temp; scanf ("%d",&d); } לא לאבד את הראש!!!
18
הדפסה ושחרור while(temp){ printf("%d ",temp->data); temp=temp->next; } while (head){ temp=head->next; free(head); head=temp; } לא לאבד את הראש!!!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.