Я хотел бы создать динамический c двумерный массив указателей на строки, как на диаграмме ниже:
введите описание изображения здесь
Программа ниже является извлеченной частью программы, и динамическое выделение стека A, кажется, работает нормально, но у меня возникли проблемы с созданием динамического c двумерного массива указателей на ячейки A.
// Global
char **stack_A; // dynamic array of strings
char ***stack_B; // dynamic array of pointers to strings
int main(){
stack_A = malloc(sizeof(char *));
stack_B = malloc(sizeof(char **));
function();
return 0;
}
void function(){
// example for first entry
char *text = "some text";
stack_A = realloc(stack_A, sizeof(char *)*strlen(text));
stack_A[0] = strdup(text);
stack_B[0] = realloc(stack_B[0], sizeof(char **));
stack_B[0][0] = *stack_A[0];
printf("%s", **stack_B[0][0]); // I want to output "some text"
}
Обновление: и комментарий, и ответ помогли решить проблему.