奇妙な問題があります: 私のコードは機能しています。具体的にはこれが機能しています。なんで?
char **array = malloc(0);
array[0] = malloc(0);
strcpy(array[0],"hello");
array[1] = malloc(0);
strcpy(array[1],"world");
一体何が起こっているのですか?malloc のいずれかを NULL に置き換えたり、それらを削除したりしても機能しませんが、malloc 内の値が負ではないことは問題ではないようです。