Я пытаюсь сохранить массив в общем из процесса и пытаюсь получить доступ к нему из другого процесса.
Ниже приведен код, который я использую для хранения массива
#include <iostream>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int count;
int main()
{
while(1)
{
int arr[5] = {1,2,3,4,5};
int *str1;
int key=5678;
// shmget returns an identifier in shmid
int shmid = shmget(key,1024, 0666|IPC_CREAT);
printf("\nShared Memory Id = %d\n",shmid);
// shmat to attach to shared memory
str1 = (int*) shmat(shmid,(void*)0,0);
for(int i=0;i<5;i++)
{
*str1=arr[i];
printf("Data written in memory: %d\n",*str1);
str1++;
}
}
shmdt((void*)str);
return 0;
}
Когда я запускаю программу, она запускается до некоторой степени и выдает ошибку как ошибку сегментации (сброшено ядро) и получает выход из приложения.
Пожалуйста, помогите мне решить эту проблему.
Спасибо и всего наилучшего, Прабхакар М