אפשר לעשות typedef למערך?

אפשר לעשות typedef למערך?

שפת C סטנדרט ANSI אני מנסה לעשות typedef למערך כלומר להגדיר טיפוס שהוא בעצם מערך דו-מימדי (או מצביע למערך כזה). גודל המערך ידוע מראש למשל [int[10][20. ניסיתי לשחק עם הסיינטקס בכל-מיני צורות אבל הקוד לא מתקמפל. זה אפשרי בכלל או שאני סתם מבזבז את הזמן? תודה מראש
 
בדיוק כך ניסיתי בהתחלה...

רק שהשתמשתי ב-unsigned int במקום int רגיל ולא אמורה להיות לזה משמעות כלשהי. הקוד שהצגת מתקמפל אצלך? באיזה קומפיילר/סביבה אתה עובד? אני ניסיתי את זה בקומפיילר gnu של VxWorks ולא התקמפל משום מה.
 

zagzagzag

New member
תבדוק אם הקוד הבא עובד אצלך:

אצלי הוא עבר הידור על GCC 3.2
#include <stdio.h> #define SIZE1 10 #define SIZE2 20 typedef unsigned int matrix_type[SIZE1][SIZE2]; int main(void) { int i,j; matrix_type matrix; for (i=0; i < SIZE1; i++) { for (j=0; j < SIZE2; j++) { matrix[j] = (i+1)*(j+1); } } for (i=0; i < SIZE1; i++) { for (j=0; j < SIZE2; j++) { printf("%d ",matrix[j]); } printf("\n"); } return 0; }​
 
תודה על התשובה...

אני אהיה ליד המערכת "הבעייתית" רק מחר ואז אנסה. תודה לך גיליוטין
 
אפרופו, אני לא יודע אם זה קשור...

אבל אני עובד עם קומפיילר של ANSI C "טהור" בלבד מסיבות שונות, ואתה קימפלת עם קומפיילר שתומך ++C. יש קשר לדעתך או שזה לא קריטי?
 
הקוד עובד! תודה!

כנראה שפיקששתי משהו בהגדרות שניסיתי לעשות אתמול. שיהיה לך יום טוב גיליוטין
 
למעלה