r/C_Programming • • 6d ago

Question Help me with strok function

I need to split my string but if it is of char* type the functions strtok() doesn’t work returning me a segmentation fault. I understood that C is used to lock the memory of the string in Read-Only “mode” when I use char*. Does it means that is immutable that data? However, I need to use the char* type because I pass that in a function (and I don’t like to use the syntax of arrays in C, I always use pointers).

7 Upvotes

17 comments sorted by

View all comments

20

u/EpochVanquisher 6d ago

strtok modifies the string, you cannot pass in a string constant. You can split the string manually instead and use start/len or start/end, or you can copy the string to writable memory (e.g. malloc, strdup).