小编lt0*_*511的帖子

没有malloc的C中的动态数组?

我一直想知道如何逃脱这个:

int main(int argc, char **argv) {
    printf("%p %s %d\n", &argv[1], argv[1], strlen(argv[1]));
    char copy[strlen(argv[1]) + 1];
    strcpy(copy, argv[1]);
    printf("%p %s %d\n", &copy, copy, strlen(copy));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

copy无论如何,char数组都被分配,程序运行正常,打印出原始数据和副本.而Valgrind并没有抱怨什么.

我认为没有malloc的C语言中不可能使用动态数组.我错了吗?

c variable-length-array

20
推荐指数
2
解决办法
9062
查看次数

标签 统计

c ×1

variable-length-array ×1