Réponse courte: Vous ne pouvez pas. Donc, vous obtenez le BYTE [] et la taille, mais vous ne savez pas si les données sont sur la pile ou le tas, donc vous ne pouvez pas simplement utiliser realloc
ou quelque chose pour l'agrandir.
Une approche consiste à s'assurer que la matrice est plus grande que nécessaire et à passer la taille actuelle et la taille maximale.
Une autre approche consiste à modifier l'API pour vous permettre d'utiliser realloc
ou similaire pour redimensionner la baie. La seule façon que je peux penser sans changer l'API est d'utiliser une sorte de marqueur dans data
pour délimiter l'espace utilisé et inutilisé (ne fonctionne pas pour les données binaires). par exemple. 0 signifie inutilisé, donc vous pouvez juste chercher le premier 0
et commencer à ajouter à partir de là.
éditer Peut-être que j'ai mal lu l'intention. Si vous ne voulez pas effectuer un changement permanent, vous pouvez prendre une copie locale, ajouter à cela (et assurez-vous de le nettoyer). Je pensais que vous vouliez un permanent, "en place" append.
est-ce que 'data' est une forme de blob binaire? Si oui, pourquoi voudriez-vous virer une corde à la fin? Qu'est-ce que ça va dire? Mais la réponse est: vous ne pouvez pas l'ajouter, vous devrez créer un nouveau tampon dans lequel vous copiez les données, puis la chaîne. – kfsone