so also ich bin wohl einfach zu blöd :x
folgendes problem ... ich wollte um mir das mit malloc/realloc mal verständlich zu machn (da unser prof das irgendwie nicht verständlich erklären konnte) und es ja nun wirklich zu den grundlagen gehört eine stack simulation programmieren. ich hab sonst echt kein verständnisproblem beim programmieren aber hier bekomm ichs einfach ned hin. das ganze funktioniert bis auf das speicherproblem (da ich ja falls sich der user entscheidet ein weiteres element einzufügen, den bereitgestellten speicher um einen string vergrößern muss)
ich weiß das das echt ne nubie frage ist, aber man muss es eben erstmal EINMAL verstehen :/ hoffe ihr könnt mir helfen
ich poste jetzt eifnach mal den src den ich bis jetzt hab hier rein und hoffe auf eure verbesserungen (ist über verkettete listen gelöst wie ihr erkennen könnt ... ihc glaube ich brauch die ganzen listenfunktionen ned hier reinposten (toll sowas versteh ich ohne probs und alloc ned *grml* naja helft mir mal auf die sprünge)
ich weiß wenigstens warum es nicht funktioniert, aber eien lösung find ich deswegen trozdem nicht ... das problem ist wohl das es sich ja nicht um ein array mit strings handelt sondern nur um einen ... dieser wird dann verlängert, aber es kommt ja deswegen keine neue arrayzeile für nen neuen string dazu :/ ... vielleicht dnek ich auch falsch :x najut ... jetzt seit ihr dran
falls ihr wegen dem listenzeugs ned klarkommt dann nehmt einfach nen ähnliches beispiel ... (unbekannte anzahl an strings müssen abgespeichert werden) ... ich bekomm das dann schon abstrahiert
danke schonma für die die es gelesen haben sollte
folgendes problem ... ich wollte um mir das mit malloc/realloc mal verständlich zu machn (da unser prof das irgendwie nicht verständlich erklären konnte) und es ja nun wirklich zu den grundlagen gehört eine stack simulation programmieren. ich hab sonst echt kein verständnisproblem beim programmieren aber hier bekomm ichs einfach ned hin. das ganze funktioniert bis auf das speicherproblem (da ich ja falls sich der user entscheidet ein weiteres element einzufügen, den bereitgestellten speicher um einen string vergrößern muss)
ich weiß das das echt ne nubie frage ist, aber man muss es eben erstmal EINMAL verstehen :/ hoffe ihr könnt mir helfen
ich poste jetzt eifnach mal den src den ich bis jetzt hab hier rein und hoffe auf eure verbesserungen (ist über verkettete listen gelöst wie ihr erkennen könnt ... ihc glaube ich brauch die ganzen listenfunktionen ned hier reinposten (toll sowas versteh ich ohne probs und alloc ned *grml* naja helft mir mal auf die sprünge)
Code:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "list.h"
int main()
{
tList *p_list;
void *p_item;
char input;
int count = 0, result;
char *item = (char *) malloc(sizeof(char *));
p_list=CreateList();
printf("\n\tKellerspeichersimulation\n\n\n");
while (input != 'Q' && input != 'q')
{
printf("\nEnter (I)nsert / (O)ut / (Q)uit: ");
fflush(stdin);
input = getc(stdin);
if (input == 'I' || input == 'i')
{
count++;
printf("\neinzufuegende Zeichenkette: ");
fflush(stdin);
gets(item);
item = (char *) realloc(item, count*sizeof(char *)+1);
result = InsertHead(p_list, item);
if (result == 1)
printf("\nEinfuegen erfolgreich.");
else
printf("\nEinfuegen fehlgeschlagen.");
}
if (input == 'O' || input == 'o')
{
p_item = GetFirst(p_list);
if (p_item == NULL)
printf("\nKellerspeicher leer");
else
{
printf("\noberste Zeichenkette: %s", p_item);
RemoveItem(p_list);
count--;
}
}
}
DeleteList(p_list);
return 0;
}
ich weiß wenigstens warum es nicht funktioniert, aber eien lösung find ich deswegen trozdem nicht ... das problem ist wohl das es sich ja nicht um ein array mit strings handelt sondern nur um einen ... dieser wird dann verlängert, aber es kommt ja deswegen keine neue arrayzeile für nen neuen string dazu :/ ... vielleicht dnek ich auch falsch :x najut ... jetzt seit ihr dran
falls ihr wegen dem listenzeugs ned klarkommt dann nehmt einfach nen ähnliches beispiel ... (unbekannte anzahl an strings müssen abgespeichert werden) ... ich bekomm das dann schon abstrahiert
danke schonma für die die es gelesen haben sollte
Zuletzt bearbeitet: