freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Ασκήση στην C για εξεταστική please help(γράφουμε αύριο)


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [10 Μηνύματα]      Bookmarks Tags: άσκηση Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
NDH


Μέλος από: 03 Φεβ 2009
Μηνύματα: 256+

View users profile Visit posters website
blog 
ΜήνυμαΣτις: 16 Ιουν 2010 21:58    Θέμα: Ασκήση στην C για εξεταστική please help(γράφουμε αύριο)
Περιγραφή θέματος: Ασκήση στην C για εξεταστική please help(γράφουμε αύριο)
Απάντηση με παράθεση  Mark this post and the followings unread

Έχουμε μια άσκηση που ζητάει να κάνουμε προγραμμα στη c το οποίο να διαβάζει και να αποθηκεύει στη μνήμη 20 αλφαριθμητικά το πολύ 26 χαρακτίρων.Έχουμε χαθεί και δε μπορούμε να καταλάβουμε τι ενοεί με τα 20 αλφαριθμητικά των 26 χαρακτήρων.Οτι μπορεί ο καθένας ας ρίξει στο τραπέζι και please οχι απαντήσεις του στυλ προσπαθήστε και σας λεμε γιατί δεν φτάνει ο χρόνος.

_________________
Συνταγές μαγειρικής CookHero
soteres2002
S. & H. Moderator

Μέλος από: 05 Μαρ 2004
Βοηθήματα: 1
Νέα: 1
Scripts: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile
ΜήνυμαΣτις: 16 Ιουν 2010 23:54    Θέμα: Re: Ασκήση στην C για εξεταστική please help(γράφουμε αύριο)
Περιγραφή θέματος: Ασκήση στην C για εξεταστική please help(γράφουμε αύριο)
Απάντηση με παράθεση  Mark this post and the followings unread

RE-EDIT:

Σου ζητάει ουσιαστικά να αποθηκεύσεις σε μία δομή 20 strings με μέγεθος το πολύ 26 χαρακτήρων.

Είναι βασική γνώση αν ξέρεις C.

Θέλεις έναν double pointer char **strings.

Κάνεις strings = (char **)malloc(26 * sizeof(char *));

και μετά δεσμεύεις τις 26 θέσεις του πίνακα, δηλαδή φτιάχνεις τη β' διάσταση ώς εξής:

for(int i = 0; i < 20; i++)
strings[i] = (char *)malloc(26*sizeof(char));

μετά πας και βάζεις σε κάθε strings[i] τις αλφαριθμητικές τιμές που θες, δηλαδή ένα string σε κάθε θέση του πίνακα.

Αυτό γίνεται με τη συνάρτηση strcpy() της string.h

Last edited by soteres2002 on 17 Ιουν 2010 01:37, edited 2 times in total
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 17 Ιουν 2010 00:51    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Φίλε soteres2002 μόλις κόπηκες με Segmentation fault, Memory access violation, Memory corruption, ή κάτι ανάλογο... (νομίζω θα καταλάβεις το γιατί)

Σε περιμένουμε στο επόμενο εξάμηνο, πιο διαβασμένο και πιο προσεκτικό
θέλει διάβασμα...
virxen75


Μέλος από: 18 Φεβ 2009
Μηνύματα: 256+
Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
View users profile
ΜήνυμαΣτις: 17 Ιουν 2010 01:28    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

τέτοια ώρα μόνο αυτό μου έρχεται στο μυαλό

κώδικας:

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

int main(){
    char pinakas[20][26];
    int i;
    for(i=0;i<20;i++){
        printf("\ndose to alfari8mitiko %d:",i+1);
        fgets(pinakas[i],sizeof(pinakas[i]),stdin);
        if (pinakas[i][strlen(pinakas[i])-1]=='\n')
            pinakas[i][strlen(pinakas[i])-1]='\0';
        printf("you entered#%s#",pinakas[i]);
        fflush(stdin);
    }
    getchar();
    return 0;
}
soteres2002
S. & H. Moderator

Μέλος από: 05 Μαρ 2004
Βοηθήματα: 1
Νέα: 1
Scripts: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile
ΜήνυμαΣτις: 17 Ιουν 2010 01:35    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Shit, μου έφυγε ένα "*" στο sizeof() στη πρώτη δέσμευση
Έκανα re-edit το comment...
virxen75


Μέλος από: 18 Φεβ 2009
Μηνύματα: 256+
Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
View users profile
ΜήνυμαΣτις: 17 Ιουν 2010 01:38    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

soteres2002 ανέφερε:
Shit, μου έφυγε ένα "*" στο sizeof() στη πρώτη δέσμευση
Έκανα re-edit το comment...


παράθεση:

strings = (char **)malloc(26 * sizeof(char *));


μηπως να το ξαναδείς?
soteres2002
S. & H. Moderator

Μέλος από: 05 Μαρ 2004
Βοηθήματα: 1
Νέα: 1
Scripts: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile
ΜήνυμαΣτις: 17 Ιουν 2010 01:46    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ναι, βασικά κανονικά το 26 πρέπει να είναι 20, και για κάθε στρινγκ να δεσμεύσεις 26 θέσεις χαρακτήρων...

πού αλλού υπάρχει prob?
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 17 Ιουν 2010 02:29    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

null terminated strings.
soteres2002
S. & H. Moderator

Μέλος από: 05 Μαρ 2004
Βοηθήματα: 1
Νέα: 1
Scripts: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile
ΜήνυμαΣτις: 17 Ιουν 2010 12:18    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Έτσι κι αλλιώς μπαίνουν NIL bytes με τη χρήση της strcpy().
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 17 Ιουν 2010 13:22    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Αυτό είναι το πρόβλημα. Δεν έχεις χώρο για να μπεί το extra byte.
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [10 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Τώρα είναι 11 Δεκ 2016 02:11 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos