C语言中定义数组时可以不定义长度吗,这样:uint8 array[]。看到一个函数的参数是这样定义的

2024-10-31 23:46:50
推荐回答(4个)
回答1:

C语言中可以定义个数不确定的动态数组,但不是用uint8 array[];这样来定义的,这样会报错。定义个数不确定的动态数组必须先声明一个指针,然后用malloc为这个指针分配一段连续的空间,然后退出程序的时候要记得使用free释放这些变量空间,否则会造成内存泄露。
比如你要定义一个字符型的动态数组,可以先声明一个字符型指针:
char *CharNew;
然后在需要定义数组的时候,用下面语句开辟一定量的连续空间:
CharNew=(char*)malloc(10*sizeof(char));
这样你就可以像一般数组一样,用CharNew[1]来访问数组中的元素;
当退出程序时,你要使用:
free(CharNew);来释放数据空间。

回答2:

函数参数可以这样定义,表明该参数是一个数组的指针,至于数组有多少个元素可以不知道。
但是在程序段落中不可以这样定义,不知道有多少个元素,编译器就不知道到底要为这个数组分配多少内存,编译器会报错。

回答3:

不能=。= 函数的参数是因为之定义他的形参而已,比如 int x啊的只是形式参数而已,只是告诉函数他的参数是什么类型额,以及如何在函数中调用
而你在正式使用的话一定要进行定义。

回答4:

不可以的