c中数组大小不能用变量的一个解决办法

今天在写到用c来解析post数据的时候需要用到一个数组变量来放post的所有数据等着来解析,不想太浪费内存了。于是想着先申请一个最大威尔哦content_length大小的数组再说。但是不允许用变量来。比如

 

int length = atoi(getenv("CONTENT_LENGTH")); char params[length]; memset(params, '/0', length);

 

那么char params[length]就编译不通过(我的理解是:编译的时候系统要确定params的大小,而length不是一个确定值,就算length直接定义为一个数字,那么系统还是不知道,所以都规范为不可以这样定义,但是至于原因我也只是猜测而已)

 

修改成这种就好鸟:

 

int length = atoi(getenv("CONTENT_LENGTH")); char *params = malloc(length * sizeof(char)); memset(params, '/0', length);

你可能感兴趣的:(c&&C++学习笔记)