我试图struct some_struct在C中声明一个指针数组
我可不可以做:
some_struct* arr[10];
Run Code Online (Sandbox Code Playgroud)
代替:
some_struct** arr=(some_struct**)malloc(10*sizeof(some_struct*));
Run Code Online (Sandbox Code Playgroud)
有什么区别?
在第一种情况下,数组的生命周期只是定义它的范围.当它超出范围时,它将自动释放,因此您不必进行任何清理.
在第二种情况下,数组超出了声明指针的范围.因此,您需要free()稍后手动操作以避免内存泄漏.