char* p1[] = {"123, "456", "789"}; //第一种
char p2[3][4] = {"123, "456", "789"}; //第二种
char **p3 = (char**)malloc(sizeof(char*) * 3); //第三种
int j = 0;
for(int i = 0; i < 3; i++){
p3[i] = (char*)malloc(100);
sprintf(p3[i], "%d%d%d", j + 1, j + 2, j + 3);
j = j + 3;
}
三种内存模型图: