Δημοσιεύτηκε: 15 Φεβ 2010, 12:12
Εμένα πάντως το παρακάτω κομμάτι μου δουλέυει... για τσέκαρε τι έχεις κανει λάθος;;;
@crafter
Συνήθως δεν χρείαζεσαι το casting. Με την έννοια οτι σε μικρό πρόγραμμα δεν μπερδεύεις αγγούρια με πατάτες. Σε εμένα για παράδειγμα στο παραπανω κομματι δεν μου έβγαλε ουτε warning. Αν όμως, έχεις struct ή γενικά πολύπλοκές δομές και θές να ξέρεις τι σου γίνεται σε όλο το πρόγραμμα ( συνηθως αυτο συμβαινει σε μεγάλα προγράμματα), τοτε χρησιμοποιείς casting , και αποφέυγεις και τα warnings όπου υπάρχουν. Στο παραπάνω κομματι κώδικα, αν έβαζα casting θα ήταν αυτό :
- Κώδικας: Επιλογή όλων
#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));
...