Consider the following code: int main() {     char *s = strdup("This is a  test");     char *d = " ";     while (s) {         char *token = strsep(&s, d);         puts(token);     }     free(s);     return 0; } Which of the following causes an error or segmentation fault? A. free is called on a pointer that was not malloc'ed B. strsep must be called with s instead of &s C. The while loop is an infinite loop D. The string s points to is in read-only memory E. Something else

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter8: Arrays And Strings
Section: Chapter Questions
Problem 28SA
icon
Related questions
Question

Consider the following code:

int main() {
    char *s = strdup("This is a  test");
    char *d = " ";
    while (s) {
        char *token = strsep(&s, d);
        puts(token);
    }
    free(s);
    return 0;
}

Which of the following causes an error or segmentation fault?

A. free is called on a pointer that was not malloc'ed
B. strsep must be called with s instead of &s
C. The while loop is an infinite loop
D. The string s points to is in read-only memory
E. Something else
Expert Solution
steps

Step by step

Solved in 3 steps

Blurred answer
Knowledge Booster
Concept of pointer parameter
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning