こういう事?

void print(char **str, int n);

int main(void)
{
int i, j, num = 10;
char **str;
str = (char **)malloc(sizeof(char*) * num);
if (str == NULL) {
printf("メモリを確保できませんでした\n");
return 1;
}
for (i = 0; i < num; i++) {
str[i] = (char *)malloc(sizeof(char) * 20);
for (j = 0; j < 20 - 1; j++)
str[i][j] = "0123456789abcdefghijklmnopqrstuvwxyz"[rand() % 36];
str[i][j] = '\0';
}
print(str, num);

return 0;
}
void print(char **str, int n)
{
int i;
for (i = 0; i < n; i++)
puts(str[i]);
}