Hallo zusammen,
Ich steh mittlerweile schon etwas länger auf dem Schlauch und verstehe nicht, was bei meinem Programm falsch ist.
und zwar: ich habe eine folgendes Programmcode:
typedef double H;
struct Vec
{
H *dat;
size_t siz;
};
void vec_init(struct Vec *sel, size_t n, const H *ini)
{
sel=malloc(n*sizeof(struct Vec));
if(sel)
{
for(int i=0;i<n;i++)
{
*(sel->dat)=*ini;
sel++;
}
}
else
{
printf("Fehler\n");
}
}
Das Programm soll den Inhalt von allen n Vectors mit dem Initialwert füllen. Leider liefert es mir einen Segmentation Fault, aber ich weiß nicht warum. Der Segmentation Fault tritt in der Zeile *(sel->dat)=*ini auf. Eigentlich müsste malloc ja den Speicherbereich von n Vectors reservieren? Wo liegt hier mein Denkfehler?
MfG. und Danke im Voraus!
Ich steh mittlerweile schon etwas länger auf dem Schlauch und verstehe nicht, was bei meinem Programm falsch ist.
und zwar: ich habe eine folgendes Programmcode:
typedef double H;
struct Vec
{
H *dat;
size_t siz;
};
void vec_init(struct Vec *sel, size_t n, const H *ini)
{
sel=malloc(n*sizeof(struct Vec));
if(sel)
{
for(int i=0;i<n;i++)
{
*(sel->dat)=*ini;
sel++;
}
}
else
{
printf("Fehler\n");
}
}
Das Programm soll den Inhalt von allen n Vectors mit dem Initialwert füllen. Leider liefert es mir einen Segmentation Fault, aber ich weiß nicht warum. Der Segmentation Fault tritt in der Zeile *(sel->dat)=*ini auf. Eigentlich müsste malloc ja den Speicherbereich von n Vectors reservieren? Wo liegt hier mein Denkfehler?
MfG. und Danke im Voraus!