Δημοσιεύτηκε: 15 Φεβ 2010, 12:12
από ant_0611
Εμένα πάντως το παρακάτω κομμάτι μου δουλέυει... για τσέκαρε τι έχεις κανει λάθος;;;

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

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i=0;
int *A[50];
printf("Now I'll allocate memory!!!\n");
for(i=0;i<50;i++)
{
A[i]=malloc(100*sizeof(int));
}

printf("Now I'll free memory\n");

for(i=0;i<50;i++)
{
free(A[i]);
}


}


@crafter
Συνήθως δεν χρείαζεσαι το casting. Με την έννοια οτι σε μικρό πρόγραμμα δεν μπερδεύεις αγγούρια με πατάτες. Σε εμένα για παράδειγμα στο παραπανω κομματι δεν μου έβγαλε ουτε warning. Αν όμως, έχεις struct ή γενικά πολύπλοκές δομές και θές να ξέρεις τι σου γίνεται σε όλο το πρόγραμμα ( συνηθως αυτο συμβαινει σε μεγάλα προγράμματα), τοτε χρησιμοποιείς casting , και αποφέυγεις και τα warnings όπου υπάρχουν. Στο παραπάνω κομματι κώδικα, αν έβαζα casting θα ήταν αυτό :
Κώδικας: Επιλογή όλων

...
A[i]=(int*)malloc(100*sizeof(int));
...