Βοήθεια στην Γλώσσα C

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
Κάνε πάντα για να είσαι σίγουρος.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 9,074 μηνύματα.
καλημερα

πιο πολυ θεωριας ηταν . Σε production code θα εκανα αυτο που λες. Διοτι ετρεξε ενα κομματι κωδικα χωρις cast απο και προς void * και με παραμετρους -Wall -Wextra -pedantic δε μου πεταγε warn. Απο την αλλη μια περιπτωση στην οποια παντα κανουμε cast και με βαση τα παραπανω δε χρειαζεται ειναι οταν καλουμε τη malloc. Οποτε λεω οτι κατι εχω καταλαβει λαθος !
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vassilis498

Διακεκριμένο μέλος

Ο vassilis498 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 7,079 μηνύματα.
Αν θες να έχεις compatibility και με C++ χρειάζεται. Αλλιώς η μόνη περίπτωση να έχω χρειαστεί τέτοιο casting στη C είναι για πέρασμα παραμέτρων σε συνάρτηση ( που και εκεί πέταγε warning ούτε καν error ).

**για τον ίδιο λόγο στη C σε αντίθεση με τη C++ η malloc δε θέλει cast.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 9,074 μηνύματα.
Ουτε στη περιπτωση που αναφερεις Βασιλη δε χρειαζεται να γινει cast. Τουλαχιστον ενα υποτυπωδες παραδειγμα αυτο μου εδειξε. Aν εχεις καποιο κομματι κωδικα στο οποιο να απαιτειται αμεση μετατροπη τυπου απο ή προς void * παραθεσε τον να δουμε τι παιζει .
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vassilis498

Διακεκριμένο μέλος

Ο vassilis498 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 7,079 μηνύματα.
Code:
void do_nothing( void **arg ) {}

int main(void)
{
    int *x;
    do_nothing( &x );
    return 0;
}
αυτή τη περίπτωση έλεγα. Για κάποιο λόγο ενώ με απλό pointer το παίρνει κανονικά εδώ γκρινιάζει.

όπως και να χει 2> /dev/null και άντε γεια :P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 9,074 μηνύματα.
γεια σας παιδια

μετα απο compile δυο αρχειων .c τα οποια κανουν include το ιδιο .h παιρνω το παρακατω σφαλμα

dereferencing pointer to incomplete type

καπως ετσι εχει η δομη:

.h
struct A{...};

1.c
include .h

2.c
include .h
ptr->field // error

εχετε καμοια ιδεα ;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vassilis498

Διακεκριμένο μέλος

Ο vassilis498 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 7,079 μηνύματα.
Code:
/* File: header.h */
struct mystruct
{
        int a;
};
Code:
/* File: main.c */
#include <stdlib.h>

#include "header.h"

int main(void)
{
        struct derpstruct *ptr;
    /*  struct mystruct *ptr; */  
        int var = ptr->a;        
        return 0;
}
μήπως έχεις κάνει κάνα typo?

( ναι κανονικά θέλει και malloc εδώ αλλά δε πετάει αυτή το σφάλμα. )
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 9,074 μηνύματα.
Το βρηκες Βασιλη.

Ευτυχως το βρηκα αρκετα νωριτερα απο τωρα που ειδα το μηνυμα σου. Πιστευω θα εμπαινα στον κοπο να τα κοιταξω και θα το βλεπα, αν το εβλεπα νωριτερα, και γι αυτο σε ευχαριστω.

Οπως καταλαβες ηταν ορθογρ. το θεμα :)
Μπορει το copy paste να σε γαμαει πολλες φορες αλλα τα ιδια σκατα γινονται και οταν τα γραφεις μονος σου. Δεν εκανα ενα c-p να τελειωνω μονο εφαγα σχεδον μια μερα στο stack overflow να διαβαζω μαλακιες.

τεσπα, καλη συνεχεια :)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 9,074 μηνύματα.
ενα προβλημα που συχνα πυκνα εμφανιζεται σε πληροφορικαριους ειναι να παιξουν με ενα συστημα server-client σε C. Βλεποντας το δευτερη φορα λοιπον θα ηθελα να τρεχουν σε διαφορετικα μηχανηματα και απομακρυσμενα.

Εκτος απο ιδια port και τις πραγματικες(οχι local) ΙPs χρειαζεται να κοιταξω κατι αλλο;

Ευχαριστω τον οποιοδηποτε κανει τον κοπο να με διαφωτισει!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vassilis498

Διακεκριμένο μέλος

Ο vassilis498 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 7,079 μηνύματα.
Αν τα μηχανήματα δεν είναι στο ίδιο δίκτυο ( που για να μιλάς για public ip μάλλον δεν είναι ), πρέπει να μπεις στο router και να το βάλεις να κάνει forward τα πακέτα που στέλνονται στο pc με το port που θες.

Καλά εγώ θα σου λεγα τέσταρέ πρώτα ό,τι έχεις με 2 διεργασίες στο ίδιο pc και σύνδεση σε localhost κι όταν δεις πως όλα δουλεύουν οκ δοκιμάζεις να το πας και απομακρισμένα.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 9,074 μηνύματα.
γαμωτο... το ειχα δει απο το stack overflow αλλα ελεγα ρε γαμωτο να ηταν ευκολοτερο. Γενικα δε θελω να μπω στη διαδικασια του port forwarding γιατι δεν ειναι και δικο μου.

ειναι project ρε συ και αντι να στελνει κωδικα ο ενας στον αλλο ή εκτελεσιμα ελεγα να γινει απομακρυσμενα.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vassilis498

Διακεκριμένο μέλος

Ο vassilis498 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 7,079 μηνύματα.
εεε δε νομίζω πως είναι τόσο καλή ιδέα :P

συνήθως αυτά λύνονται χρησιμοποιώντας κάποιο VCS ( git, svn, mercurial etc )
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Bemanos

Πολύ δραστήριο μέλος

Ο Μοριακός Αρχιτέκτονας αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 30 ετών, Διδακτορικός και μας γράφει απο Ηνωμένο Βασίλειο (Ευρώπη). Έχει γράψει 1,879 μηνύματα.
Προγραμμα που του δινεις 3 αριθμους και τους κατατασει κατα αυξουσα σειρα
Code:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
double a,b,c;
printf("please enter 3 numbers \n ");
scanf("%lf %lf %lf",&a,&b,&c);
if(a>b>c)
{ 
printf( "the numbers you entered are %3.2f %3.2f %3.2f",a,b,c);
system("pause");
}
else
{
if(a>c>b)
{
printf("the numbers you entered are %3.2f %3.2f %3.2f",a,c,b);
system("pause");
}
else
{
if(b>a>c)
{
printf("the numbers you entered are %3.2f %3.2f %3.2f",b,a,c);
system("pause");
}
else
{
if(b>c>a)
{
printf("the numbers you entered are %3.2f %3.2f %3.2f",a,c,b);
system("pause");
}
else{
if(c>a>b)
{
printf("the numbers you entered are %3.2f %3.2f %3.2f",c,a,b);
system("pause");
}
else
{
if(c>b>a)
{
printf("the numbers you entered are %3.2f %3.2f %3.2f",c,b,a);
}
else
{
    printf("system error");
    system("pause");
}
}
}
}
}
}
return 0;
}
το θεμα ειναι οτι αγνοει ολες τις επιλογες ,ασχετως με τους αριθμους που βαζω και με πηγαινει στην τελευταια επιλογη "system error"
Καμια ιδεα?
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

aergos

Δραστήριο μέλος

Ο aergos αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 410 μηνύματα.
Προγραμμα που του δινεις 3 αριθμους και τους κατατασει κατα αυξουσα σειρα
Code:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
double a,b,c;
printf("please enter 3 numbers \n ");
scanf("%lf %lf %lf",&a,&b,&c);
if(a>b>c)
{ 
printf( "the numbers you entered are %3.2f %3.2f %3.2f",a,b,c);
system("pause");
}
else
{
if(a>c>b)
{
printf("the numbers you entered are %3.2f %3.2f %3.2f",a,c,b);
system("pause");
}
else
{
if(b>a>c)
{
printf("the numbers you entered are %3.2f %3.2f %3.2f",b,a,c);
system("pause");
}
else
{
if(b>c>a)
{
printf("the numbers you entered are %3.2f %3.2f %3.2f",a,c,b);
system("pause");
}
else{
if(c>a>b)
{
printf("the numbers you entered are %3.2f %3.2f %3.2f",c,a,b);
system("pause");
}
else
{
if(c>b>a)
{
printf("the numbers you entered are %3.2f %3.2f %3.2f",c,b,a);
}
else
{
    printf("system error");
    system("pause");
}
}
}
}
}
}
return 0;
}
το θεμα ειναι οτι αγνοει ολες τις επιλογες ,ασχετως με τους αριθμους που βαζω και με πηγαινει στην τελευταια επιλογη "system error"
Καμια ιδεα?

Δεν είναι σωστό αυτό το "if(a>b>c)"
πρέπει να το βάλεις (a>b && b>c)
Έστω πχ a=10, b = 5, c=3
Η πράξη a>b>c θα ελέγξει πρώτα a>b, θα δει ότι ισχύει και θα επιστρέψει 1. Μετά ελέγχει 1>c, βλέπει ότι δεν ισχύει και επιστρέφει 0.
Ο κώδικάς σου έτσι όπως είναι τώρα θα δουλέψει σωστά μόνο αν ο μικρότερος αριθμός είναι μικρότερος του 1.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Bemanos

Πολύ δραστήριο μέλος

Ο Μοριακός Αρχιτέκτονας αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 30 ετών, Διδακτορικός και μας γράφει απο Ηνωμένο Βασίλειο (Ευρώπη). Έχει γράψει 1,879 μηνύματα.
Δεν είναι σωστό αυτό το "if(a>b>c)"
πρέπει να το βάλεις (a>b && b>c)
Έστω πχ a=10, b = 5, c=3
Η πράξη a>b>c θα ελέγξει πρώτα a>b, θα δει ότι ισχύει και θα επιστρέψει 1. Μετά ελέγχει 1>c, βλέπει ότι δεν ισχύει και επιστρέφει 0.
Ο κώδικάς σου έτσι όπως είναι τώρα θα δουλέψει σωστά μόνο αν ο μικρότερος αριθμός είναι μικρότερος του 1.

:clapup::clapup::clapup: Ευχαριστω!!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

aergos

Δραστήριο μέλος

Ο aergos αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 410 μηνύματα.
:clapup::clapup::clapup: Ευχαριστω!!
παρακαλώ.

btw, τώρα πρόσεξα ότι σπουδάζεις Χημεία.
Απορώ γιατί σε τέτοιες σχολές σας ταλαιπωρούν με γλώσσα C. Λες και δεν υπάρχει η matlab ή διάφορα άλλα προγραμματιστικά εργαλεία για να κάνετε τη δουλειά σας.
Αν βέβαια μαθαίνεις C από επιλογή σου τότε οκ..
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

natasoula...

Πολύ δραστήριο μέλος

Η Νατάσα αυτή τη στιγμή δεν είναι συνδεδεμένη. Είναι 29 ετών και Μεταπτυχιούχος. Έχει γράψει 1,907 μηνύματα.
Έχετε καμιά καλή πρόταση από πού να διαβάσω αρχεία;; Γιατί με το βιβλίο που έχω δε βγάζω πολύ άκρη...
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Alan

Δραστήριο μέλος

Ο Alan αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Μεταπτυχιούχος και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 696 μηνύματα.
Έχετε καμιά καλή πρόταση από πού να διαβάσω αρχεία;; Γιατί με το βιβλίο που έχω δε βγάζω πολύ άκρη...

Μπορείς να κοιτάξεις εδώ
Επιπλέον, εδώ, από τη σελίδα 140 περίπου κι έπειτα. Πολύ αναλυτικές και χρήσιμες.
Και τέλος εδώ, έχει όλες τις συναρτήσεις περί αρχείων, με links με παραδείγματα για την καθεμιά κι επιπλέον πληροφορίες.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

natasoula...

Πολύ δραστήριο μέλος

Η Νατάσα αυτή τη στιγμή δεν είναι συνδεδεμένη. Είναι 29 ετών και Μεταπτυχιούχος. Έχει γράψει 1,907 μηνύματα.
Σε ευχαριστώ πάρα πολύ!! :)
Είχα αρχίσει να απελπίζομαι! :P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

jimissss

Νεοφερμένος

Ο jimissss αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Πατήσια (Αττική). Έχει γράψει 104 μηνύματα.
Δεν το πιστευω οτι αυτο το thread χρησιμοποιειται ακομα. Το αρχικο μου προβλημα πριν σχεδον εξι χρονια ηταν μια εργασια για το πρωτο εξαμηνο της σχολης στο μαθημα της C++ η οποια ηταν υποχρεωτικη και μετρουσε και ενα μεγαλο ποσοστο του τελικου βαθμου, αλλα ως τελειως τεμπελης φοιτητης την αφησα για τελευταια στιγμη και χωρις να εχω ιδεα απο C++ ξεκινησα να την γραψω 12 ωρες πριν την προθεσμια της. Αφου ειδα οτι δν υπηρχε περιπτωση να την κανω την ανεβασα εδω. Ευχαριστω πολυ αυτον που την ελυσε (βαθμολογηθηκε με 9,5) αν και μετα εγραψα πολυ χαλια στο μαθημα αυτο με αποτελεσμα να παρω ενα 7.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Χρήστες Βρείτε παρόμοια

  • Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:
    Tα παρακάτω 9 μέλη διάβασαν αυτό το θέμα:
  • Φορτώνει...
Top