0
shmget
関数を使用して一部のデータを格納するために共有メモリを使用しています。次に、それを添付してデータを保存するのにshmat
を使用します。次回に接続すると、プログラムがクラッシュします。この行にはどのような可能性がありますか:C++クラッシュの共有メモリ
if((smemPtr = (int*)shmat(sMemId,NULL,0)) != (int *) -1)
クラッシュ?私は、この行がクラッシュするシナリオを知る必要があります。 sMemId
には値があります。
なぜデバッグビルドをビルドしてgdbで調べてみませんか? – Nim
クラッシュの原因となっているのは本当ですか? – nos
@elmo shmat()は失敗したときに(void *) - 1を返します。そのため、結果がint *にキャストされているので意味があります。私はそれが実際に同じ価値を返すと確信していません - 確かにすべてのプラットフォームではありません。 –