Shrink tableau int C

Juste commencé à apprendre le C et suis tombé sur le problème suivant:

J'ai besoin de rétrécir un tableau d'entiers en C, la suppression d'éléments à la fin. En retirant je veux dire libérer. La réponse commune est d'allouer de la mémoire pour le petit tableau, après lequel copier tous les éléments ( -éléments à supprimer ) du tableau original dans la mémoire nouvellement allouée, et puis free() du tableau original.

Parce que je dois traiter avec très de grands tableaux, je préfère ignorer la copie de la partie.

Serait-il possible de créer une variable du pointeur qui pointe vers "près de la fin du tableau original" de taille "fin de la baie près de la fin", puis libérer le pointeur?

Merci d'avance

Vous pouvez les réduire à l'aide de realloc. Il n'est pas garanti, mais certaines implémentations en vous redonner le pointeur d'origine que vous avez passé, sans copier quoi que ce soit.
Avez-vous envisagé d'utiliser realloc?
Va realloc aussi gratuit quelque éléments sont supprimés à la fin? Je ne sais pas comment tester cette... merci pour la réponse rapide!
Eh bien, il serait redimensionner la quantité d'espace allouée à ce que vous dites qu'il (soit plus grand ou plus petit), je vais donner un exemple ci-dessous.
Pour répondre à la partie de votre question, il n'est pas possible pour free() de publier une partie d'un bloc de mémoire en passant un pointeur "vers la fin". Que serait certainement causer un accident ou d'un segment de la corruption.

OriginalL'auteur Joeri van Veen | 2012-08-29