繁体   English   中英

从C中的Shell声明全局CHAR数组

[英]Declaring a global CHAR array from shell in C

我在C中的全局变量有问题。我必须用C创建一个字符串数组。字符串的数目将由外壳程序传递的参数( number_of_string = atoi(argv[1]) )确定。 因此,我认为最好的方法是使用number_of_strings指针数组。 该数组的每个元素都将指向由malloc保留的一部分内存。 主要问题是我需要在执行main(argv [1]尚不存在)之前定义数组的大小作为全局变量。 我不知道该怎么解决。 谁能帮我?

这可以解决您的问题吗?

#include <stdlib.h>

char **strings;

int main(int argc, char **argv)
{
    int size;
    int i;
    if ( argc < 2 )
        return 1;

    size = atoi(argv[1]);

    if ( size <= 0 )
        return 2;

    strings = malloc(sizeof(char*)*size);

    for ( i = 0 ; i < size ; i++ ) {
        strings[i] = malloc(sizeof(char)*100);
    }

    // You now have argv[1] 100-byte strings (don't forget about NULL terminators)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM