How to empty a char array?

Alex Xander picture Alex Xander · Oct 13, 2009 · Viewed 387.6k times · Source

Have an array of chars like char members[255]. How can I empty it completely without using a loop?

char members[255];

By "empty" I mean that if it had some values stored in it then it should not. For example if I do strcat then old value should not remain

members = "old value";

//empty it efficiently
strcat(members,"new"); // should return only new and not "old value new"

Answer

Steve Gilham picture Steve Gilham · Oct 13, 2009

using

  memset(members, 0, 255);

in general

  memset(members, 0, sizeof members);

if the array is in scope, or

  memset(members, 0, nMembers * (sizeof members[0]) );

if you only have the pointer value, and nMembers is the number of elements in the array.


EDIT Of course, now the requirement has changed from the generic task of clearing an array to purely resetting a string, memset is overkill and just zeroing the first element suffices (as noted in other answers).


EDIT In order to use memset, you have to include string.h.