Может быть, вы хотите сделать что-то вроде этого:
char *init(unsigned int n) {
char *result;
/* allocate the memory */
result = malloc(n * sizeof(char));
return result;
}
это выделит память для хранения n смежных символов.
Вы можете уменьшить код до:
char *init(int n) {
return malloc(n * sizeof(char));
}
или вместо вызова этой функции вы можете просто сделать это напрямую:
malloc(n * sizeof(char));
или вы можете создать макрос
#define INIT_CHAR_ARR(n) malloc((n) * sizeof(char))
если вы хотите n смежных указателей символов:
malloc(n * sizeof(char*))
Это поможет нам помочь вам, если вы объясните свою конечную цель, возможно, есть лучший способ сделать то, что вы делаете.