Der Compiler meldet eine Zugriffsverletzung?!
Vermutlich nicht. Dennoch ist in Deinem Code vieles ziemlicher Quark,
hiermit fängt es an:
1 | temp = getenv("QUERY_STRING");
|
2 | if(p!=NULL)
|
3 | printf("<tr><td>Der String lautet: %d</td></tr>",*temp);
|
temp ist ein Pointer auf char, Du dereferenzierst ihn und lässt printf
einen Integer erwarten.
Du überprüfst nicht, ob temp NULL ist, auch nicht bei der Zeile, bei
der Deine Fehlermeldung auftritt:
Auch hier: temp ist ein Pointer auf char!
Probier mal das hier aus:
1 | int main(void)
|
2 | {
|
3 | char *temp;
|
4 | char *p;
|
5 | print_header();
|
6 | print_html_header();
|
7 | p = getenv("HTTP_USER_AGENT");
|
8 | temp = getenv("QUERY_STRING");
|
9 | if (p)
|
10 | printf("<tr><td>Der eine String lautet: %s</td></tr>", p);
|
11 |
|
12 | if (temp)
|
13 | {
|
14 | printf("<tr><td>Der andere String lautet: %s</td></tr>", temp);
|
15 |
|
16 | if (atoi(temp) == 1)
|
17 | printf("<tr><td>Ist eins!</td></tr>");
|
18 | else
|
19 | printf("<tr><td>Nicht eins!</td></tr>");
|
20 | }
|
21 | print_html_end();
|
22 |
|
23 | return EXIT_SUCCESS;
|
24 | }
|