This is my first time working with dynamic arrays and I am honestly just so confused. My original array(below) works fine.
#include <stdio.h>
int main()
{
    char icdC[4][10];
    for(int i =0;i<4;i++){
      for(int j=0;j<10;j++){
        printf("What are your ICD codes [%d][%d]\n",i,j);
        scanf("%s", &icdC[i][j]);
      }
    }
    return 0;
}
However I tried converting this array into a double dynamic array (below) it doesn't seem to work correctly as it will either tell me "signal: segmentation fault (core dumped) or it just won't run.
#include <stdio.h>
#include <strings.h>
#include <stdlib.h>
#include <ctype.h>
#include <stdbool.h>
int main()
{
    char** icdC;
    icdC = (char**)malloc(4*10*sizeof(char));
    for(int i=0;i<4;i++){
      for(int j=0;j<10;j++){
        printf("What are your ICD codes [%d][%d]\n",i,j);
        scanf("%s", &icdC[i][j]);
      }
    }
    return 0;
}
 
     
    