我正在寫一個共享內存程序,一邊將創建一塊內存,並寫入一個結構,然後從另一個程序讀取該結構。我的問題是我似乎只是複製一個simmple可擴展到結構沒有得到一個段錯誤nevermind複製結構到共享的內存。任何人都可以幫我一點。由於C內存共享問題
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <assert.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/shm.h>
#include <unistd.h>
struct companyInfo
{
double sharePrice;
char companyName[100];
};
int main()
{
key_t key = 1234;
int shmid;
char* smPtr = NULL;
int i = 1;
struct companyInfo * pdata;
size_t sizeOfCompanyInfo = sizeof(pdata);
printf("Size: %d\n", sizeOfCompanyInfo);
size_t sizeMem = sizeOfCompanyInfo*5;
shmid = shmget(key, sizeMem, 0644 | IPC_CREAT);
smPtr = (char*) shmat(shmid, (void*) 0, 0);
char bank[100] = "AIB";
strcpy(pdata->companyName, bank);
}
pdata似乎在最後一行未初始化。 – 2012-03-09 17:55:06