Den Sun, 27 May 2001 17:48:42 +0200 skrev Brian Ipsen:
>Hej!
>
> Jeg er kørt fast i min spaghetti-kode, og har behov for hjælp (se
>bort fra check på memory etc, det skal nok komme med):
>
>Jeg alllokerer et array af pointere (100 pointere totalt):
>
>char *ptrMyArray;
>ptrMyArray=calloc(100,sizeof(char * ));
>
>Jeg skal så have smidt noget data ind i dette array (i et kald til en
>subroutine) - og her allokeres memory til den enkelte pointer løbende:
>
>MyFunc(&ptrMyArry);
>
>
>Hvor MyFunc så ser sådan her ud:
>
>MyFunc(char *myData[])
>{
> char *locPtr;
> int cnt;
>
> for(cnt=0;cnt<100;cnt++)
> {
> locPtr=mydata[cnt];
> locPtr=(char *) malloc(30);
> sprintf(locPtr,"Value %d",cnt);
> }
>}
>
>Jeg er klar over, at jeg gør noget fuldstændig forkert, men min hjerne
>kan bare ikke gennemskue det lige nu....
Smid locPtr ud - det er den der er problemet...
for(cnt=0;cnt<100;cnt++)
{
locPtr=mydata[cnt];
mydata[cnt]=(char *) malloc(30);
sprintf(mydata[cnt],"Value %d",cnt);
}
Du kan godt lave det på den anden måde, men så skal locPtr være en
char ** (bemærk: 2 stjerner).
Mvh
Kent
--
http://www.celebrityshine.com/~kfr/