C语言中定义数组时可以不定义长度吗,这样:uint8 array[]。看到一个函数的参数是这样定义的
4个回答
展开全部
C语言中可以定义个数不确定的动态数组,但不是用uint8 array[];这样来定义的,这样会报错。定义个数不确定的动态数组必须先声明一个指针,然后用malloc为这个指针分配一段连续的空间,然后退出程序的时候要记得使用free释放这些变量空间,否则会造成内存泄露。
比如你要定义一个字符型的动态数组,可以先声明一个字符型指针:
char *CharNew;
然后在需要定义数组的时候,用下面语句开辟一定量的连续空间:
CharNew=(char*)malloc(10*sizeof(char));
这样你就可以像一般数组一样,用CharNew[1]来访问数组中的元素;
当退出程序时,你要使用:
free(CharNew);来释放数据空间。
比如你要定义一个字符型的动态数组,可以先声明一个字符型指针:
char *CharNew;
然后在需要定义数组的时候,用下面语句开辟一定量的连续空间:
CharNew=(char*)malloc(10*sizeof(char));
这样你就可以像一般数组一样,用CharNew[1]来访问数组中的元素;
当退出程序时,你要使用:
free(CharNew);来释放数据空间。
展开全部
函数参数可以这样定义,表明该参数是一个数组的指针,至于数组有多少个元素可以不知道。
但是在程序段落中不可以这样定义,不知道有多少个元素,编译器就不知道到底要为这个数组分配多少内存,编译器会报错。
但是在程序段落中不可以这样定义,不知道有多少个元素,编译器就不知道到底要为这个数组分配多少内存,编译器会报错。
更多追问追答
追问
你的意思是作为函数参数时,会把它当作指针吗?
追答
是的,该参数的值为数组的首地址。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能=。= 函数的参数是因为之定义他的形参而已,比如 int x啊的只是形式参数而已,只是告诉函数他的参数是什么类型额,以及如何在函数中调用
而你在正式使用的话一定要进行定义。
而你在正式使用的话一定要进行定义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询