如果在c99中进行编译时我们不知道数组的长度,可以静态分配数组吗?

问题描述 投票:0回答:1

我不确定这是否正确,我提供了我的意思的示例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char** argv){
    int duzina;
    duzina = strlen(argv[1]);

    char novi[duzina+1];
    strcpy(novi, argv[1]);
    printf("%s\n", novi);

    return 0;
}

我编译并运行它,并按预期执行,但我不确定这是否正确使用了静态分配。

c c99
1个回答
0
投票

这样做完全没有问题。静态分配内存仅意味着您以后将无法执行realloc(),但是如果您不需要调整数组的大小,则将其定义为static完全可以。

© www.soinside.com 2019 - 2024. All rights reserved.