char *** 할당에 관한 문의입니다..

초코리의 이미지

C++에서 하다가 오랜만에 C를 하려니

아리까리(?) 한 부분이 있습니다.

함수에서 리스트를 얻어오는 예제인데요.
다음과 같은 코드에서 문제나 버그가 없을까요??

일단 동작에는 문제 없고 valgrind에서도 어떤 워닝이나 에러는 나오지 않네요.

함번 코드 리뷰 부탁드립니다.

#include <stdio.h>
#include <stdlib.h>
 
void allocList(char ***pCharList)
{
	int cnt = 3;
 
	*pCharList = malloc(sizeof(**pCharList) * 3);
	for ( cnt = 0; cnt < 3; cnt++)
	{
		*((*pCharList)+cnt) = malloc(128);
		snprintf(*((*pCharList)+cnt), 128 ,"TEST STRING Index[%d]", cnt);
		printf("STR[%s]\n", *((*pCharList)+cnt));
	}
}
 
 
int main()
{
 
	char **pointer = NULL;
	int cnt = 0;
 
	allocList(&pointer);
 
 
	for (cnt = 0; cnt < 3; cnt++)
	{
		printf("GET STRING[%s]\n", (*(pointer+cnt)));
		free(*(pointer+cnt));
	}
	free(pointer);
 
	return 0;
}