If you just have
char** code;
*code[0] = "Lucas";
you'll run into undefined behavior since you did not allocate any memory for code.
You'll need to use:
char** code = malloc(SOME_SIZE*sizeof(*code));
Even after that, using:
*code[0] = "Lucas";
is not good. There are couple of problems with that.
code[0] is a pointer. *code[0] is that pointer dereferenced. If you already have some string in code[0], then, *code[0] will be first character of that string. The assignment is, therefore, wrong.
Also, "Lucas" is going to be in a read-only parts of the compiled code. You will need to make a copy of "Lucas" using strdup before you assign it to a variable that is of type char *.
You need something like:
code[0] = strdup("Lucas");
Now you can use code[0] to access the whole string. You can use *code[0] to access the first character of that string. You can also use code[0][0] to access the first character of that string.
mallocbefore, e.g:char **code = malloc(sizeof(*code) * n);and thencode[0] = "Lucas"(without the*)constfrom the string literal and will not have an array you can manipulate.char*(actuallychar[N]), even though they're technicallyconst char[]. This is an exception for mostly historical reasons, since C didn't always haveconst; it probably remains because a lot of existing code useschar*instead ofconst char*.