gpt4 book ai didi

c - 二维数组初始化

转载 作者:行者123 更新时间:2023-11-30 18:32:34 25 4
gpt4 key购买 nike

我创建了一个像这样的二维数组:

char string_y2m[2][8];

然后我只是使用 memset() 将其初始化为 0:

memset(&string_y2m, 0, sizeof(string_y2m));

现在我必须给它分配一些值,但它不起作用。我已经这样分配了:

string_y2m[2][8] = {"2011-1","2011-01"};

它不起作用,如果我在声明本身做同样的事情,它会起作用。

最佳答案

当目标是字符数组并且您没有声明它时,您不能像 C 中那样分配字符串。

在 C 中,您需要使用 strcpy() 将字符串复制到数组中,请特别注意缓冲区大小:

strcpy(string_y2m[0], "2011-1");
strcpy(string_y2m[1], "2011-01");

或者使用snprintf()(如果有的话):

snprintf(string_y2m[0], sizeof string_y2m[0], "%s", "2011-1");
snprintf(string_y2m[1], sizeof string_y2m[1], "%s", "2011-01");

此外,在写入字符串之前无需清除空格,因为写入字符串会将字符设置为所需的值。

关于c - 二维数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12402874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com