fillLeft(int L, int N, char* c) : ajoute des espaces à gauche d'un entier

Dans un champ de L caractères, préalablement alloué avec une dimension suffisante, place l'entier N à droite, et complète à gauche avec des espaces.
Le résultat est placé dans le troisième argument, et renvoyé. Le code client doit désallouer la mémoire.
{
  ...
  char* c = new char[10];
  char* d = new char[10];
  int L, N;
  L = 6;
  N = 9999;
  d = fillLeft(L, N, c);
  printf("\nfillLeft(%d, %d, c) --> c : '%s'", L, N, c);
  printf("\nfillLeft(%d, %d, c) --> d : '%s'", L, N, d);
  L = 9;
  N = 1;
  d = fillLeft(L, N, c);
  printf("\nfillLeft(%d, %d, c) --> c : '%s'", L, N, c);
  printf("\n\n");
  delete[] c;
  //delete[] d; // erreur : 'double free detected'
}'
>>

fillLeft(6, 9999, c) --> c : '  9999'
fillLeft(6, 9999, c) --> d : '  9999'
fillLeft(9, 1, c) --> c : '        1'

This page was generated with the help of DOC++.