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

Πρόβλημα με malloc στην c


pagratios

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

Δημοσ.

Έχω τις εξης δομές

>
typedef struct{
   array_t *array;
} ws_t;

typedef struct{
   char pagenum[6];
   int id;
   int count;
   int num;
   char dirty;
   int frame;
}array_t;


ws_t ws[2];

 

και επειδή το array δεν ξέρω πόσο θα είναι κάνω το εξής

>
void ws_init(int i)
{
   int j,k;

   for(j=0;j<2;j++)
       ws[j].array = (array_t*)malloc(i*sizeof(array_t));


   for(j=0;j<2;j++)
   {
       for(k=0;k<i;k++)
       {
           strcpy(ws[j].array[k].pagenum,"");
           ws[j].array[k].count = -1;
           ws[j].array[k].dirty = '\0';
           ws[j].array[k].frame = -1;
           ws[j].array[k].id = -1;
           ws[j].array[k].num = -1;
       }
   }

}

 

και μου βγαζει στο netbean τα εξλης σφάλματα

>In file included from working_set.c:5:
working_set.h:12: error: expected specifier-qualifier-list before ‘array_t’
working_set.c: In function ‘ws_init’:
working_set.c:14: error: ‘ws_t’ has no member named ‘array’
working_set.c:21: error: ‘ws_t’ has no member named ‘array’
working_set.c:22: error: ‘ws_t’ has no member named ‘array’
working_set.c:23: error: ‘ws_t’ has no member named ‘array’
working_set.c:24: error: ‘ws_t’ has no member named ‘array’
working_set.c:25: error: ‘ws_t’ has no member named ‘array’
working_set.c:26: error: ‘ws_t’ has no member named ‘array’

 

κάτι δεν κάνω καλά στην malloc ή σε όλες τις δηλώσεις

Δημοσ.

Για δοκίμασε να ορίσεις το array_t πριν από το ws_t στο πηγαίο αρχείο σου!Απλώς μετακίνησε τον κώδικα.

Δημοσ.
Για δοκίμασε να ορίσεις το array_t πριν από το ws_t στο πηγαίο αρχείο σου!Απλώς μετακίνησε τον κώδικα.

 

Αυτό ήταν.

 

Δεν ήξερα ότι το πείραζε η σειρά

Δημοσ.

Τι ακριβώς είναι το παρακάτω?

 

>pagefile: malloc.c:3074: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.
Aborted

Δημοσ.
ενα error...... σχετικο με το malloc.... :P

 

αν θες βαλε τον κωδικα που το προκαλεσε ωστε να βοηθησουμε λιγο παραπανω

 

Είχα ξεχάσει ότι σας ρώτησα. Τελικά το βρήκα. Σε κάποια for είχα ένα λάθος το οποίο το διόρθωσα και τώρα είμαι εντάξει.

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

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

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