-
oder in c++ ne referenz übergeben, oder du machst es im malloc style, und gibst den zeiger zurück, sähe dann so aus:
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int i;
char str[10];
float f;
}Struckt_s;
Struckt_s* alloc(Struckt_s *pStruckt)
{
/*
der Parameter *pStruct wird nicht genutzt, es empfiehlt sich,
stattdessen die Anzahl der zu allokierenden pStruckts zu übergeben,
wenn das softwaremäßig noch machbar ist
return ((Struckt_s*)malloc(n * sizeof(Struckt_s)));
n ist hier der übergebene Parameter.
*/
return ((Struckt_s*)malloc(sizeof(Struckt_s)));
}
int main(void)
{
Struckt_s *pStruckt = NULL;
pStruct = alloc(pStruckt);
pStruckt->i = 10; /*Hier krachts weil pStruckt immer noch "0" ist*/
return 0;
}
Ach ja, code-tags machen es erst richtig schön
mfg
-bg-