The discussion centers on how to allocate memory for a char*** data type in C, particularly in the context of managing an array of strings. Participants clarify that a char* represents a single string, while a char** is an array of strings. The necessity of using char*** is questioned, with suggestions that it might be intended for a matrix-like structure where each char** represents a row of strings. Example code is provided for allocating memory using malloc, emphasizing the importance of casting the return value to the appropriate type, although some argue that this casting is not strictly necessary in C. The conversation also touches on best practices for using pointers in C, highlighting the potential complexity and debugging challenges associated with multiple levels of indirection. Additionally, there is mention of the relevance of the typedef keyword for improving code readability and safety. The discussion concludes with a call for clarification from the original poster regarding their specific use case.