【问题标题】:How to create a (half) dynamic array of characters in C如何在 C 中创建(半)动态字符数组
【发布时间】:2012-02-27 23:18:38
【问题描述】:

对于我想要做的事情,我需要一个char ** 形式的数组。 我发现使用以下内容会创建一个动态数组,最终需要 256 次免费调用:

char** start = malloc(11*sizeof(char));
    for (i=0;i<256;i++) {
    start[i] = malloc(11*sizeof(char));
}
for (i=0;i<256;i++) {
    free(start[i]);
}

如果有意义的话,我该如何创建char[(malloc)][(12)] 形式的数组...

【问题讨论】:

    标签: c arrays malloc


    【解决方案1】:
    char (*p)[12] = calloc(n, sizeof(*p));  // or malloc
    
    ...
    
    free(p);
    

    p 是一个指向 n 数组的指针,每个数组的长度为 12。

    【讨论】:

    • 起初我对答案与 char ** 的不同之处感到困惑,但是一旦我真正尝试了您的建议,它就像一个魅力。谢谢
    • @user1190885:抱歉,我没注意到你使用的是char!反正我已经调整了答案。
    猜你喜欢
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 2012-02-15
    • 1970-01-01
    • 2019-09-16
    • 2013-11-26
    • 1970-01-01
    相关资源
    最近更新 更多