C++ Beispiel - wo is da der Fehler??

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/c_beispiel_wo_is_da_der_fehler_19698/page_1 - zur Vollversion wechseln!


Bimminger schrieb am 08.12.2001 um 00:03

Ich sollt da drin den Fehler findn - aba i findn net. is a beispiel, wos drum geht, dass ma a char*-Stringpointer in an Array ablegen kann und so...

-------------------------------------------------------
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#define MAX 100

void sort(char **,int);
void main(void)
{
char *feld[MAX];
int i,anz;
char eingelesen[129];
anz=0;
printf("Wort eingeben: \n");
gets(eingelesen);
while (strlen(eingelesen) != 0)
{
feld[anz]=(char *)malloc(strlen(eingelesen)+1);
strcpy(feld[anz],eingelesen);
anz++;
printf("Wort eingeben: \n");
gets(eingelesen);
}
sort(feld,anz);
for (i=0;i<anz;i++)
{
printf("String %d: %s\n",i+1,*feld[i]);
free(feld[i]);
}

getch();
}

void sort(char **feld,int anz)
{
int i,j;
char *help;
for (i=0;i<anz-1;i++)
for (j=i+1;j<anz;j++)
{
if (stricmp(feld[i],feld[j]) >0)
{
help=feld[i];
feld[i]=feld[j];
feld[j]=help;
}
}

}
-------------------------------------------

mfG CB


Ringding schrieb am 08.12.2001 um 01:39

Naja, das mit dem gets() kann nicht hinhauen, weil das am Ende NULL liefert, und davon kann man kein strlen() machen. Sonst seh ich jetzt auch nix.


Bimminger schrieb am 08.12.2001 um 01:49

Richtig probleme macht er beim

for (i=0;i<anz;i++)
{
printf("String %d: %s\n",i+1,*feld[i]);
free(feld[i]);
}


da hat er bereits im ersten schleifendurchgang, bei i=0, irgendwelche probleme. in VCPP (konsolenanwendung) bringt er einen "unerlaubten speicherzugriff" -> deutet auf nen falschen pointerzugriff hin... hab aber auch mitn debugger nix rausgfunden.

mfG CB


that schrieb am 08.12.2001 um 09:27

Zitat von Bimminger
Richtig probleme macht er beim

for (i=0;i<anz;i++)
{
printf("String %d: %s\n",i+1,*feld[i]);
free(feld[i]);
}


da hat er bereits im ersten schleifendurchgang, bei i=0, irgendwelche probleme. in VCPP (konsolenanwendung) bringt er einen "unerlaubten speicherzugriff" -> deutet auf nen falschen pointerzugriff hin... hab aber auch mitn debugger nix rausgfunden.

Da is ein * zu viel.


Bimminger schrieb am 08.12.2001 um 11:45

wow - thx!! tja da hab wohl auch ich mich mit der referenz auf die referenz verhaut... DANKE, JETZT GEHTS!

mfG CB




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025