Δημοσιεύτηκε: 11 Σεπ 2011, 20:05
από migf1
Star_Light έγραψε:
Κώδικας: Επιλογή όλων
#include <stdio.h>
#define N 254 + 1
typedef struct person
{
int age;
char name[N];
char surname[N];
} kostas ;


int main(void)
{

kostas someone;
kostas *p;

p=&someone;


printf("Dwse to onoma sou: ");
fgets((*p).name,254,stdin);

printf("Dwse to epwnumo sou: ");
fgets((*p).surname,254,stdin);

printf("Dwse tin ilikia sou: ");
scanf("%d",&someone.age);

printf("========================================");

printf("\nTo onoma pou edwses einai: %s",(*p).name);
printf("H ilikia pou edwses einai: %d",(*p).age);
printf("\nTo epwnimo pou edwses einai: %s",(*p).surname);

return 0;
}


εδω ειμαι τωρα :D

Το p είναι περιττό, στον κώδικα αυτόν. Μπορείς να δουλέψεις απευθείας με το someone. Αλλά ακόμα κι αν το έχεις κάνει απλά για δοκιμή, το (*p).name είναι καλύτερα να το γράφεις: p->name (εφόσον το p είναι δείκτης).

έγραψε:
Να ρωτησω κατι... δεν μπορεις να αρχικοποιησεις απευθειας μια κυρια δομη ε???? πχ

Κώδικας: Επιλογή όλων


struct person {
int a;
int b;
};

main()
{
person.a=...
person.b=....

}

Από την αναθεώρηση C99 και μετά μπορείς:
Κώδικας: Επιλογή όλων

int main( void )
{
person a = {.a=0, .b=0 }; // ή σκέτο: person a = { 0, 0 };
}

Πριν την C99 δεν μπορούσαμε (ούτε στον διευθυνσιογράφο το χρησιμοποιούμε, για να έχει συμβατό κώδικα σε όλους τους compilers).