עזרה עם struct

PINGPONG11

New member
עזרה עם struct

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct _NUM {
int my;
NUM* next;
} NUM;

הקומפיילר אומר
error: unknown type name 'num'

מה לא בסדר בזה? זה נסיון לממש רשימה מקושרת..
 

nocgod

New member
ובכן

א. לא נכון שזה לא מוצמד לשמאל כי מבחינתי הקוד לא מובן
ב. את/ה לא יכול/ה להגדיר בתוך ה struct משתנים/מצביעים למשתנים שעוד לא הגדרת. שים/י לב שהמשתנה NUM מוגדר רק אחרי שסיימת להגידר את הstruct

פתרונות:
א.

typedef struct _NUM {
int my;
struct _NUM* next;
} NUM;

ב.

typedef struct _NUM NUM;
struct _NUM {
int my;
NUM* next;
};


בפתרון הראשון אני משתמש בהגדרת הstruct כדי להגדיר את המצביע
בפתרון השני אני עושה הגדרה מקדימה של הטיפוס NUM ורק אחרכך מגדיר את הstruct
 

PINGPONG11

New member
תודה! בעיה נוספת עם המצביע...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>

typedef struct _NUM {
int my;
struct _NUM* next;
} NUM;

NUM head;
head.next=NULL;

הקומפיילר כתב
error: expected '=' ',' ';' before '.' token

תודה על העזרה!
 

פרסאוס

New member
יש לך תג לקוד

זה שיישרת אותו בעזרת ctrl-shit לא באמת מיישר אותו, אלא רק לתצוגה בשבילך.
כשאת מוסיפה הודעה עם קוד, השתמשי באפשרות "הוסף תגובה" ולא "הוספת תגובה מהירה".
 

פרסאוס

New member
ועדיף שתצרפי את הקובץ הבעייתי

בינתיים נראה שאת מנסה לאתחל משתנה שלא בתוך פונקציה.
 
למעלה