동적배열 할때(type)* var = (type*) malloc(size_t * sizeof(type));으로 하잖아요근데 size_t가 정해져 있는데그럼 type[size_t] var; 랑 차이가 뭔가요?
메모리가 할당되는 영역이 달라집니다.
예를 들어, char k[100]; 으로 변수를 선언하면 스택영역에 메모리가 할당되기 때문에 해당 변수의 scope 를 벗어나게 되면 할당된 메모리가 해제가 됩니다.
하지만 char* k = calloc(100, sizeof(char)); 와 같은 방식으로 메모리를 할당하면 힙 영역에 메모리가 할당되어 사용자가 free() 함수로 메모리를 해제하지 않는 이상, 프로그램 종료시까지 남아있게 됩니다.
힙에 할당되건 스택에 할당되건 결국 기능은 같게 되는거 아닌가요...
그럼 딱히 malloc를 써야할 필요가 없다고 생각되는데요
동적할당에서 size_t는 유동적이라 원하는 만큼만 할당할수있고 원하는 타이밍에 해제해줄수있는게 또 장점이져