我不确定这是否正确,我提供了我的意思的示例:
#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;
}
我编译并运行它,并按预期执行,但我不确定这是否正确使用了静态分配。
这样做完全没有问题。静态分配内存仅意味着您以后将无法执行realloc()
,但是如果您不需要调整数组的大小,则将其定义为static完全可以。