Je sais que c'est une convention à passer la longueur de tableaux alloués dynamiquement à des fonctions qui les manipulent:
void initializeAndFree(int* anArray, size_t length);
int main(){
size_t arrayLength = 0;
scanf("%d", &arrayLength);
int* myArray = (int*)malloc(sizeof(int)*arrayLength);
initializeAndFree(myArray, arrayLength);
}
void initializeAndFree(int* anArray, size_t length){
int i = 0;
for (i = 0; i < length; i++) {
anArray[i] = 0;
}
free(anArray);
}
mais si il n'y a aucun moyen pour moi d'obtenir la longueur de la mémoire allouée à partir d'un pointeur, comment est - free()
"automagiquement" savoir ce désallouer quand tout ce que je suis en train de faire, c'est le même pointeur? Pourquoi ne puis-je pas obtenir dans la magie, comme un programmeur en C?
Où est - free()
obtenir son libre (har-har) de connaissances à partir de?