次のようなことをしたい (またはする必要がある)
char **my_array = malloc(1000*64);
strcpy(arr[0], "test");
arr[0] が割り当てられたメモリの別の部分を指していないことはわかっていますが、このように文字列をコピーできるはずだと思いました(それでもセグメント化されています)。これは機能します
arr[0] = "test";
ただし、私の実際の目標は共有メモリでこれを行うことであるため、うまくいきません。
shm_array = shmget(IPC_PRIVATE, 1000 * 64, IPC_CREAT | 0644);
my_array = (char**) shmat(shm_array, (void**)0, 0);
実際、私の質問は「共有メモリに文字列の配列を作成するにはどうすればよいですか?」と言い換えることができます。1000 個の個別の「文字列」共有メモリ セグメントを作成しようとしましたが、それ以外はうまくいきませんでした。さらに、相対ポインターオフセットを使用して、大きな共有メモリセグメントに簡単に書き込むことができるはずだと思いました。