我在C中遇到全局变量的问题。我必须用C创建一个字符串数组。字符串的数量将由shell传递的参数(number_of_string = atoi(argv[1])
)确定。所以我认为最好的方法是使用number_of_strings
指针数组。这个数组的每一个元素都指向一个用malloc保留的内存部分。主要问题是我需要在执行main(argv [1]之前尚不存在)之前定义数组的大小,作为全局变量。我不知道怎么解决这个问题。任何人都可以帮助我吗?
答案 0 :(得分:0)
这是否解决了您的问题?
#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)
}