C语言中如何正确定义并初始化一个字符串数组?
在C语言中,如何正确定义并初始化一个字符串数组是初学者常遇到的技术问题。常见的错误包括未分配足够的空间或忘记以空字符'\0'结尾。正确的做法是:首先定义一个二维字符数组,例如`char strArray[3][50];`,这里可以存储3个长度不超过49的字符串(留一位给'\0')。然后通过以下方式初始化:`strcpy(strArray[0], "Hello"); strcpy(strArray[1], "World");` 或直接初始化:`char *strArray[] = {"Hello", "World", "C Language"};`。后者使用指针数组指向字符串常量,注意避免修改内容以防引发未定义行为。此外,动态分配时需用`malloc`为每个字符串单独分配内存,如`char **strArray = (char **)malloc(3 * sizeof(char *)); for(int i=0;i<3;i++) strArray[i] = (char *)malloc(50 * sizeof(char));`。这些方法各有适用场景,选择时需考虑内存管理与性能需求。
收起