Thread: Regarding C pointers

  1. #1
    Registered User
    Join Date
    Jul 2002

    Angry Regarding C pointers

    Hi buddies,

    char *cTest = new char[10];
    printf(" \nThe strlen(cTest) is : %d\n",strlen(cTest));

    The output of this printf statement should be 10 but itz giving 14.

    help please, why it so..


  2. #2
    &TH of undefined behavior Fordy's Avatar
    Join Date
    Aug 2001
    You arent initialising that data to anything before testing the length

    All strlen does is travel up the string until it finds a zero byte......

    When you allocate that memory, it could hold anything........only use strlen when you know there's a string in that area of data

  3. #3
    Me want cookie! Monster's Avatar
    Join Date
    Dec 2001
    It works if you use the sizeof operator and a "static" array:
    char cTest[10];
    printf("sizeof(cTest) = %d\n", sizeof(cTest));

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. MergeSort with array of pointers
    By lionheart in forum C Programming
    Replies: 18
    Last Post: 08-01-2008, 10:23 AM
  2. Using pointers to pointers
    By steve1_rm in forum C Programming
    Replies: 18
    Last Post: 05-29-2008, 05:59 AM
  3. Request for comments
    By Prelude in forum A Brief History of
    Replies: 15
    Last Post: 01-02-2004, 10:33 AM
  4. Staticly Bound Member Function Pointers
    By Polymorphic OOP in forum C++ Programming
    Replies: 29
    Last Post: 11-28-2002, 01:18 PM