可不可以定义一个数组或是字符串组不定义它的长度?

比方说我想定义一个字符串数组 不知道将来要输进去多少又不想把它的长度写多了 好像似乎这样就可以?
char *y;
y="abaew";
但好像会出错?

阅读 8k
2 个回答

最新的C支持用变量作为数组长度。

int main()
{
    int n;
    scanf("%d", &n);
    int a[n];

    /* ... */

    return 0;
}

不可以!

  1. 用malloc分配空间

int len;
len = strlen("abaew");
char *y = malloc(len+1);
strcpy(y,"abaew");
y[len]='\0';
  1. c99好像可以定义动态数组,但个人觉得少用为好

int len;
len = strlen("abaew");
char y[len+1];
strcpy(y,"abaew");
y[len]='\0';
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进