例如我有
*line[30];
我想为每个指针分配一个 81 个字符的字符串。我该怎么做?我可以通过哪种方式访问第二个字符串,例如在 printf 中使用它?
另外**a
,它是等价的吗?
我是新手,这可能是一个简单的问题,但我渴望学习。非常感谢你!
I want to allocate a string 81 characters for each pointer
由于您知道所需的确切尺寸,因此可以静态执行此操作:
char line[30][81];
这为您提供了 30 个 81 个字符的数组。
strcpy(line[0], "hello");
strcpy(line[1], "world");
printf("%s\n", line[1]); // prints the second string
下面的代码片段将为您提供帮助。
#define MAX_LINES 30
#define MAX_CHARS 81
...
char * line[MAX_LINES];
int i;
for (i = 0; i < MAX_LINES; i++)
{
line[i] = malloc(sizeof(char) * MAX_CHARS);
}
使用相同的for
循环访问每一行。line[1]
将访问第二个字符串(即行)。