....こんにちは、コードの実行中に常に「セグメンテーション エラー」が発生します。ファイルへの書き込みに問題があるときにこのエラーが発生することを私が知っていること(共有メモリについても同じことが言えると思います)、エラーがforループから来ていることを知っています、私はこのエラーを解決するためにあらゆることを試みましたが失敗しました(私もfor ループを削除し、*s = 'A' と入力しただけです。
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdlib.h>
main()
{
//Shared memory parameters
int shmid ;
int shmsize = 14;
key_t key = 2121;
char *shm, *s;
//Create SMS
if ((shmid = shmget (key , shmsize, 0666 | IPC_CREAT)) == -1) {
perror ("Error in Creating the SMS");
abort();
}
//Attatching the sms to the address space
if (shm = shmat(shmid , NULL , 0) == (char *)-1) { /*<<<< 23 */
perror ("Error in attatching the SMS");
abort();
}
int i ;
s = shm;
for(i = 0 ; i <= 63 ; i++)
*s++ = (char)i;
*s = NULL; /*<<<< 33 what's the problem */
}
また、23 と 33 の両方で警告が表示されます