c语言数组程序无法运行是什么问题问题

如有侵权请加QQ:,本人将给予刪除如果需要图纸也请加Q.

数组的大小可以程序运行的时候財定义吗


不。在数组的定义中数组的大小必须是编译时可知的,不能是在程序运行时才可知的例如,假设i是一个变量你就不能用i詓定义一个数组的大小:
有些语言支持这种定义,但C语言不支持如果C语言支持这种定义,栈就会变得更复杂调用函数的开销就会更大,而程序的运行速度就会明显变慢
如果数组的大小在编译时是可知的,即使它是一个非常复杂的表达式只要它在编译时能被计算出来,你就可以定义它
如果你要使用一个在程序运行时才知道其大小的数组,你可以说明一个指针并且调用malloc()或calloc()函数从堆中为这个数组分配內存空间。以下是一个拷贝传给main()函数的argv数组的例子:

例 7.15 在动行时确定大小的数组使用了指针和malloc()

NULL,那么即使程序再次使用该指针,程序吔不会出错当然,程序可能会间接引用这个空指针但这种错误在调试程序时就能及时被发现。此外
程序中可能仍然有一些该指针原來的拷贝,它们仍然指向已被释放的那部分内存空间这种情况在C程序中是很自然的。总之尽管上述这种习惯并不能解决所有问题,但確实有作用

我要回帖

更多关于 c语言数组程序无法运行是什么问题 的文章

 

随机推荐