我正在编写一段代码,用于处理从*msg Outlook文件中存储的电子邮件中提取信息.我是如何做到这一点的,我从C#Outlook interop和OpenSharedItem开始打开MSG文件.但是当调用方法OpenSharedItem时会出现这样的错误System.AccessViolationException.谁知道问题是什么?
这是导致错误的代码
Outlook._Application app = new Outlook.Application();
Outlook.NameSpace NS = app.GetNamespace("MAPI");
Outlook.MAPIFolder inboxFld = NS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
Outlook.MailItem fld = (Outlook.MailItem) app.Session.OpenSharedItem("E://Projects//C#//message1.msg");
Run Code Online (Sandbox Code Playgroud) 我正在创建简单的粒子系统.我有两个typedef结构.首先表示具有一些字段的单个粒子.第二个代表粒子系统.我的问题是我无法释放为每个粒子分配的内存.真的不知道出了什么问题.这是结构:
typedef struct {
float m;
float *x;
float *v;
float *f;
float R;
} *Particle;
typedef struct {
Particle *p;
int n;
float t;
} *ParticleSystem;
Run Code Online (Sandbox Code Playgroud)
这里是分配代码
ParticleSystem sys = (ParticleSystem) malloc(sizeof(ParticleSystem));
sys->p = (Particle *) malloc(sizeof(Particle)*noOfParticles);
for(int i=0;i<noOfParticles;i++){
sys->p[i] = (Particle)malloc(sizeof(Particle));
sys->p[i]->f = (float*)malloc(sizeof(float)*2);
sys->p[i]->f[0] = 0.0f;
sys->p[i]->f[1] = 0.0f;
...
sys->p[i]->R = radius;
sys->p[i]->m = mass;
}
sys->n=noOfParticles;
sys->t = 0.0f;
Run Code Online (Sandbox Code Playgroud)
和释放
int n = sys->n;
for(int i=0;i<n;i++){
free(sys->p[i]->f);
...
free(sys->p[i]);//here it breaks
}
free(sys->p);
free(sys);
Run Code Online (Sandbox Code Playgroud)
在行"free(sys-> …