Προς το περιεχόμενο

απορία στη C, calloc


coconutt

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα,

Ένα μέρος του κώδικα είναι:

int *y;

y = (int*)calloc( N,sizeof(int) );

int *vectory;

vectory = (int *)calloc( sb, sizeof(int) );

for (j=0;j<sb;j++)

{

y[j+((counter-1)*sb)]=vectory[j];

}

 

και εμφανίζεται μήνυμα ότι το y δεν έχει δηλωθεί.

Γνωρίζει κάποιος πώς μπορώ να το διορθώσω;Ουσιαστικά,η απορία είναι πώς μπορώ να επεξεργαστώ το χώρο που δεσμεύω με την calloc;

Ευχαριστώ πολύ!!!

Δημοσ.

Το λογικό θα ήταν να σου βγάζει μήνυμα ότι το vectory[j] δεν έχει τιμές. Αλλιώς δεν φαίνεται να έχει κάποιο λάθος. Έλεγξε μήπως το j+((counter-1)*sb) παίρνει τιμές πάνω από το N που έχει οριστεί ως το μέγεθος του πίνακα Y.

Μπορείς να γράψεις ακριβώς το error που σου βγάζει?

Δημοσ.
Το error που βγάζει είναι:

'y' undeclared (first use in this function)

 

Μόνο αυτό το μήνυμα βγάζει ? Ποιος compiler ?

 

Καλησπέρα,

Ένα μέρος του κώδικα είναι:

int *y;

y = (int*)calloc( N,sizeof(int) );

int *vectory;

vectory = (int *)calloc( sb, sizeof(int) );

for (j=0;j<sb;j++)

{

y[j+((counter-1)*sb)]=vectory[j];

}

 

και εμφανίζεται μήνυμα ότι το y δεν έχει δηλωθεί.

Γνωρίζει κάποιος πώς μπορώ να το διορθώσω;Ουσιαστικά,η απορία είναι πώς μπορώ να επεξεργαστώ το χώρο που δεσμεύω με την calloc;

Ευχαριστώ πολύ!!!

 

Το κομμάτι αυτό είναι συνεχόμενο όπως το βλέπουμε ή έχει και άλλα τμήματα

ενδιάμεσα ? Ρωτάω γιατί με παραξένεψε η ανάθεση του vectory στον y. Μετά

την την calloc και ο y και ο vectory θα έχουν μηδενικές τιμές.

Δημοσ.

Έγραψα τον κώδικα ακριβώς όπως το έχεις εδώ και δεν μου έβγαλε κανένα error.

Ψάξε λίγο που αλλού έχεις το Y μήπως δεν είναι σε αυτό το τμήμα το πρόβλημα.

Δημοσ.

το κομμάτι δεν είναι συνεχόμενο.περίπου 200 σειρές είναι ο κώδικας κ μόνο αυτό βγάζει λάθος.Το πρόγραμμα χρησιμοποιεί mpi κ δεν ξέρω τον compiler που έχει το πανεπιστήμιο.Η ανάθεση του vectory στο y γίνεται γιατί το y πρέπει να έχει Ν στοιχεία αλλά το vectory έχει κάθε φορά sb στοιχεία και με τη βοήθεια του counter προσπαθώ να τα βάλω στη σωστή θέση του y. Στο error γράφει επίσης

each undeclared identifier is reported only once for each function it appears in.

Δημοσ.

Ευχαριστώ πολύ για το ενδιαφέρον σας.Το βρήκα τελικά.Έπρεπε να έχω την calloc σε όλους τους κόμβους που συμμετέχουν και όχι μόνο σε έναν.

Ευχαριστώ

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...