To be safe you don’t break stuff (for example when these strings are changed in your code or further up), or crash you program (in case the returned string was literal for example like "hello I'm a literal string"
and you start to edit it), make a copy of the returned string.
You could use strdup()
for this, but read the small print. Or you can of course create your own version if it’s not there on your platform.
Related Posts:
- Arrow operator (->) usage in C
- Passing by reference in C
- Why does the arrow (->) operator in C exist?
- expression must have integral type
- How to printf a memory address in C
- Invalid type argument of -> C structs
- What does ** mean in C?
- Get size of pointer in C
- C: pointer to array of pointers to structures (allocation/deallocation issues)
- Casting a pointer to an int
- Initialization makes pointer from integer without a cast – C
- lvalue required as left operand of assignment error when using C++
- Pointer Arithmetic
- What does “dereferencing” a pointer mean?
- What does “dereferencing” a pointer mean?
- char *array and char array[]
- Are the C++ & and * operators inverses in all contexts?
- C pointers and arrays: [Warning] assignment makes pointer from integer without a cast
- What is the difference between const int*, const int * const, and int const *?
- how does the ampersand(&) sign work in c++?
- What is the difference between const int*, const int * const, and int const *?
- Difference between char* and const char*?
- What does ** do in C language?
- What’s the difference between char and char* in C++?
- #31 expression must have integral type
- How do you pass a function as a parameter in C?
- Invalid pointer error on invoking free() after malloc in C
- When should I use the new keyword in C++?
- expression must have integral type
- How do you pass a function as a parameter in C?
- How to make an array with a dynamic size? General usage of dynamic arrays (maybe pointers too)?
- How do you pass a function as a parameter in C?
- C free(): invalid pointer
- What’s wrong with my code? What is argv[1]?
- Valgrind: Invalid read of size 1
- Constant pointer vs Pointer to constant
- Reversing a string in C
- Warning: return from incompatible pointer type in C
- Is the sizeof(some pointer) always equal to four?
- Warning: assignment from incompatible pointer type
- strcmp giving segmentation fault
- Why am I getting this error: “data definition has no type or storage class”?
- Initialization from incompatible pointer type warning when assigning to a pointer
- Typedef function pointer?
- What is the use of intptr_t?
- Returning an array using C
- warning: passing argument ’from incompatible pointer type [enabled by default]’
- char pointers: invalid conversion from ‘char*’ to ‘char’?
- What is the difference between char array and char pointer in C?
- Why do I get “cast from pointer to integer of different size” error?
- Why use pointers?
- What’s the difference between * and & in C?
- Excess elements of scalar initializer for pointer to array of ints
- What exactly is meant by “de-referencing a NULL pointer”?
- typedef struct pointer definition
- Difference between char *argv[] and char **argv for the second argument to main()
- Difference between char* and char** (in C)
- Warning: comparison of distinct pointer types
- Realloc Invalid Pointer in C
- Dereference void pointer
- The difference between char * and char[] [duplicate]
- What does ‘return *this’ mean in C++?
- Difference between the int * i and int** i
- Pointer to 2D arrays in C
- Pointer to a string in C?
- Using pointer to char array, values in that array can be accessed?
- C – Error is “free(): invalid next size (normal) “
- Meaning of *& and **& in C++
- lvalue required as increment operand
- How big can a 64 bit unsigned integer be?
- The difference between n++ and ++n at the end of a while loop? (ANSI C)
- What is a segmentation fault?
- How many spaces for tab character(\t)?
- Implementing Taylor Series for sine and cosine in C
- Working on code to calculate cosine with factorial sum
- How to use execvp()
- How to use execvp() to execute a command
- How does strtok() split the string into tokens in C?
- warning: implicit declaration of function
- warning: implicit declaration of function
- What is *(uint32_t*)?
- What does (~0L) mean?
- pthread_join() and pthread_exit()
- What are the differences between a pointer variable and a reference variable in C++?
- What is size_t in C?
- What is the difference between float and double?
- what is Segmentation fault (core dumped)? [duplicate]
- What causes a segmentation fault (core dump) to occur in C?
- uint8_t vs unsigned char
- How to use symbols of extended ASCII table in C?
- Two questions about basic C programs
- What is the difference between ++i and i++?
- Using boolean values in C
- What does “collect2: error: ld returned 1 exit status” mean?
- How to convert an int to string in C?
- typedef struct vs struct definitions [duplicate]
- How to print in C
- What is the effect of extern “C” in C++?
- Why should we typedef a struct so often in C?
- Why are #ifndef and #define used in C++ header files?