C语言中动态分配数组大小以避免strlen(x)返回0
"C语言中,数组的大小必须在编译时确定,而不能根据运行时的变量来确定。"\n"在这段代码中,你声明了一个名为x的字符数组,并尝试使用str作为数组的大小。然而,str的值是在运行时计算得出的,编译器无法确定数组的大小。"\n"在C语言中,如果你想根据运行时的变量来确定数组的大小,你可以使用动态内存分配函数,如malloc()。这样可以在运行时根据需要动态地分配内存。"\n"下面是一个示例:"\n"\n"c\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n\nint main() {\n char s[] = \"Hello World\";\n int i;\n int str = strlen(s);\n\n for(i = 0; i < strlen(s); i++){\n if(s[i] == ' '){\n str += 2;\n }\n }\n\n char *x = malloc(str * sizeof(char));\n printf(\"%d\n\", strlen(x));\n free(x);\n\n return 0;\n}\n"\n"在这个示例中,我们使用了malloc函数动态分配了一个大小为str的字符数组x,并使用sizeof运算符来计算每个元素的大小。然后,我们可以使用strlen函数来获取字符串x的长度。最后,别忘了在不再需要使用x之后,使用free函数释放内存。"
原文地址: https://www.cveoy.top/t/topic/pJwY 著作权归作者所有。请勿转载和采集!