Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » free

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
15.09.2003, 15:57 Uhr
Pablo
Supertux
(Operator)


Naja, der Autor der Funktion bin ich, und ich bleibe der einzige Anwender dieser Funktion. Ich mache keine Funktion, damit der Rest der Welt sie benutzt, und wenn schon, ich schreibe gleich die Dokumentation, wie man sie benutzt.

Ich wollte nur wissen, wie man am besten eine char* Funtion bastelt, damit sie am wenigsten Speicher belegt lässt, wenn das Programm beendet wird.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
15.09.2003, 17:14 Uhr
0xdeadbeef
Gott
(Operator)


Wie gesagt, ich würd nen Buffer und seine Länge als Parameter übergeben und nachher den Buffer zurückgeben. Für den Fall, das was schiefgeht, NULL zurück und errno setzen. Beispiel:

C++:
#include <errno.h>

char *fill(char *buf, size_t len, char cnt)
{
  size_t i;
  if(buf == NULL) {
    errno = EFAULT;
    return NULL;
  }
  for(i = 0; i < len; ++i) buf[i] = cnt;
  buf[len] = 0;
  return buf;
}


Die Anwendung dann:

C++:
#include <errno.h>

char *b;
size_t len;
/*...b verändern, niemand weiß, ob b NULL ist. Aber wenn b != NULL, ist len <= Länge des Buffers */
if(fill(b, len, 'A') == NULL)
{
  switch(errno)
  {
  case EFAULT:
    fprintf(stderr, "Bad address\n");
    break;
  case ...
  }
  exit(errno);
} else {
  printf("%s\n", b);
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 15.09.2003 um 17:17 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: