Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Indem du das Programm änderst. ;-]ich will eine Datei einlesen und in einem Array speichern (mit Speicherreservierung). Das Problem ist, dass das Programm mein EOF-Zeichen (ÿ in html) ins letzte Array mitspeichert. Wie kann ich das verhindern?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *input;
char INPUT;
char *m_input = NULL;
int input_counter = 0;
int b = 0;
int c = 0;
input = malloc(sizeof(char));
m_input = malloc(10 * sizeof(char));
while ((*input=getchar()) != EOF)
{
INPUT=*input;
switch(*input)
{
case '@':
{
if (m_input == NULL)
{
m_input = realloc(m_input, 7 * sizeof(char));
}
m_input[b++] = ' ';
m_input[b++] = '[';
m_input[b++] = 'a';
m_input[b++] = 't';
m_input[b++] = ']';
m_input[b++] = ' ';
} break;
default:
{
if (m_input == NULL)
{
m_input = realloc(m_input, 2 * sizeof(char));
}
m_input[b] = *input;
b++;
}
}
putchar(INPUT);
input_counter++;
}
printf("\n----------\n");
int i;
for (i=0;i<=b;i++)
{
printf("b(%d) =\t%p\t%c\n", i, &m_input[i], m_input[i]);
}
free(input);
free(m_input);
return EXIT_SUCCESS;
}
int input;
while ((input = getchar()) != EOF) {
switch (input) {
...
}
}
for (i = 0; i < b; ++i) {
...
}
Nein, ein int wird automatisch zu einem char umgewandelt wenn nötig.Ok, danke für den Hinweis mit int, aber wie kann ich ein int in einen char übertragen? muss ich es casten?
Nochmal: wie sollte m_input denn plötzlich NULL sein?Ich hab jetzt zusätlich folgendes hingeschrieben:
Code:#define MAX 10 int s_max = MAX; // s_max = Speicher Max (10) m_input = malloc (s_max*sizeof(char); // reservier 10 Bytes s_max += s_max; // bei if (m_input == NULL)
if ((s_max - b) < anzahl_benoetigte_zeichen) {
// reallozieren falls der Speicher nicht ausreicht.
...
}
Übrigens wäre es sinnvoller den Speicher nicht jedesmal zu re-allozieren, sondern z.B. gleich immer um 500 Zeichen zu erhöhen.
Gruß