gpt4 book ai didi

c - 如何将内存分配给空字符串数组

转载 作者:太空宇宙 更新时间:2023-11-04 07:51:27 25 4
gpt4 key购买 nike

我得到一个空字符串数组,大小为1(自动为1,我真的不知道为什么)

我想将大小为 10 的空字符串数组分配给该空字符串数组,但我不知道该怎么做?

这是我目前的代码

char empty_string_array[] = "";

printf("Enter some strings: eg. asdfjklo...: ");
scanf("%s", &empty_string_array[0]);

int len_of_string = strlen(empty_string_array);
printf("%d\n", len_of_string);

输入:输入一些字符串...:a输出:字符串的当前长度:1

重启输入:输入一些字符串....:ab*检测到堆栈粉碎*中止(核心转储)

我猜这意味着,没有为多个字符串分配内存,除了已经存在的那个

我知道我可以使用:char empty_string_array[11] = "";对于 10 个字符串和\0 ,但这并不是最好的解决方案

最佳答案

既然你必须使用malloc()那么

char *empty_string_array = (char *)malloc(sizeof(char) * 10 + 1);
//casting from (void *) is not really necessary, though

printf("Enter some strings: eg. asdfjklo...: ");
scanf("10%s", empty_string_array);

int len_of_string = strlen(empty_string_array);
*(empty_string_array+len_of_string) = '\0';
//or: empty_string_array[len_of_string] = '\0'; your pick
printf("%d\n", len_of_string);

关于c - 如何将内存分配给空字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53574166/

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