I want to initialize an array of strings in C through a function. I used this code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void createArrayStrings(char ** listStr){
listStr = malloc (3 * sizeof(char*));
listStr[0] = malloc(2 * sizeof(char)); // N chars + '\0'
listStr[1] = malloc(3 * sizeof(char));
listStr[2] = malloc(4 * sizeof(char));
strcpy(listStr[0], "A");
strcpy(listStr[1], "AB");
strcpy(listStr[2], "ABC");
}
int main(int argc, const char * argv[]) {
char ** listStr = NULL;
createArrayStrings(listStr);
for (int i = 0;i<3;i++){
printf("%s\n",listStr[i]);
}
return 0;
}
But there is an execution error EXEC_BAD_ACCESS in printf. Where is my error? Thanks.