0

例如我有

*line[30];

我想为每个指针分配一个 81 个字符的字符串。我该怎么做?我可以通过哪种方式访问​​第二个字符串,例如在 printf 中使用它?

另外**a,它是等价的吗?

我是新手,这可能是一个简单的问题,但我渴望学习。非常感谢你!

4

2 回答 2

3

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
于 2013-01-15T19:31:40.823 回答
2

下面的代码片段将为您提供帮助。

#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]将访问第二个字符串(即行)。

于 2013-01-15T19:06:18.567 回答