code:
int foo[256];
和
int *bar;
bar = (int *)malloc(256*sizeof(int));
foo 和 bar 功能上是相同的定义一个array。 foo被当成一个指针,bar作为一个数组. C甚至不检查数组的界限。
两者不同之处是foo分配的内存会自动回收,当它所在的函数运行结束时,而bar的内存空间只有在使用free函数时才被释放。
还有什么不同的吗? 欢迎大家来补充
int foo[256];
和
int *bar;
bar = (int *)malloc(256*sizeof(int));
foo 和 bar 功能上是相同的定义一个array。 foo被当成一个指针,bar作为一个数组. C甚至不检查数组的界限。
两者不同之处是foo分配的内存会自动回收,当它所在的函数运行结束时,而bar的内存空间只有在使用free函数时才被释放。
还有什么不同的吗? 欢迎大家来补充