שאלה בC
אני מנסה ללמוד C ממדריכים באינטרט, ורציתי להתעמק קצת יותר בarray כי לא כל כך הבנתי את זה, אז "כתבתי"(הקוד כבר היה פחות או יותר כתוב, מה שניסיתי לעשות היה שהמשתמש יכניס את המספרים במקום מה שהיה בקוד המקורי שהתוכנה יצרה אותם) את הקוד הבא: #include <stdio.h> #define MAX 4 int a[MAX]; int x, y, i, t; int main() { printf("This program will sort 5 values you insert from the smallest to the largest\n"); for (i=0; i<MAX; i++) { printf("Enter a number[%d]\n", i+1); scanf("%d\n", a); } for (x=0; x<MAX-1; x++) for (y=0; y<MAX-x-1; y++) if (a[y]>a[y+1]) { t = a[y]; a[y] = a[y+1]; a[y+1] = t; } printf("************************************\n"); for (i=0; i<MAX; i++) printf("%d\n", a); return 0; } (הקוד לא כל כך קריא ככה, אז אני אוסיף את הקובץ) בכל מקרה, הבעיה היא: שהתוכנה נתקעת באמצע, כלומר הקומפיילר לא מצא שום בעיה בקוד ויצר קובץ EXE, אבל אחרי שמפעילים את הקובץ ומכניסים את הערך הראשון זה פשוט נתקע. ווינדוז אומר לי שהיה 0x00000005, בבדיקה מהירה באינטרנט כתוב: Bug Check 0x5: INVALID_PROCESS_ATTACH_ATTEMPT The INVALID_PROCESS_ATTACH_ATTEMPT bug check has a value of 0x00000005. This bug check appears very infrequently. אז מה עשיתי לא בסדר? ואיך אפשר לכתוב את הקוד כך שהוא יעשה את אותו הדבר ולא יתקע?
אני מנסה ללמוד C ממדריכים באינטרט, ורציתי להתעמק קצת יותר בarray כי לא כל כך הבנתי את זה, אז "כתבתי"(הקוד כבר היה פחות או יותר כתוב, מה שניסיתי לעשות היה שהמשתמש יכניס את המספרים במקום מה שהיה בקוד המקורי שהתוכנה יצרה אותם) את הקוד הבא: #include <stdio.h> #define MAX 4 int a[MAX]; int x, y, i, t; int main() { printf("This program will sort 5 values you insert from the smallest to the largest\n"); for (i=0; i<MAX; i++) { printf("Enter a number[%d]\n", i+1); scanf("%d\n", a); } for (x=0; x<MAX-1; x++) for (y=0; y<MAX-x-1; y++) if (a[y]>a[y+1]) { t = a[y]; a[y] = a[y+1]; a[y+1] = t; } printf("************************************\n"); for (i=0; i<MAX; i++) printf("%d\n", a); return 0; } (הקוד לא כל כך קריא ככה, אז אני אוסיף את הקובץ) בכל מקרה, הבעיה היא: שהתוכנה נתקעת באמצע, כלומר הקומפיילר לא מצא שום בעיה בקוד ויצר קובץ EXE, אבל אחרי שמפעילים את הקובץ ומכניסים את הערך הראשון זה פשוט נתקע. ווינדוז אומר לי שהיה 0x00000005, בבדיקה מהירה באינטרנט כתוב: Bug Check 0x5: INVALID_PROCESS_ATTACH_ATTEMPT The INVALID_PROCESS_ATTACH_ATTEMPT bug check has a value of 0x00000005. This bug check appears very infrequently. אז מה עשיתי לא בסדר? ואיך אפשר לכתוב את הקוד כך שהוא יעשה את אותו הדבר ולא יתקע?