Hallo Leute! Ich schreibe ein Testprogramm in C zu IP Forwarding. Als Compiler benutze ich MS Visual Studio 2008 Professional. Habe aber ein Problemm mit den Pointern. Hier ist ein kleiner Auszug aus dem Programm.
an der Stelle "ssg->flag=0" sagt mir der Debuger "Unhandled exception at 0x00843752 in test.exe: 0xC0000005: Access violation writing location 0x00000008." Weiss jemand einen Rat? Noch eine Frage wäre, ob ich direkt über hash_table[hash_result].ssg_pointer in z.B. Flag was reinschreiben kann? Bei hash_table[hash_result].ssg_pointer->flag=0 bekomme ich die selbe Fehlermeldung. Bin neu im Forum, wenn ich was falsch geschrieben habe, entschuldige ich mich im voraus.
Code:
#include <stdio.h>
#include <stdlib.h>
#define TABLE_LENGTH 32772
//Definition Small Search Group
struct ssg1 {
unsigned int suffix, next_hop;
unsigned char flag, length;
};
//Definition Hash Table
struct hash_table1 {
unsigned int identifier, collision_pointer;
unsigned char ssg_size;
struct ssg1 *ssg_pointer;
};
//Programmbegin
void main() {
int i, j;
unsigned char hash_length;
unsigned int hash_result;
struct ssg1 *ssg;
struct hash_table1 hash_table[2*TABLE_LENGTH];
hash_result=2;
hash_table[hash_result].ssg_size=1;
hash_table[hash_result].ssg_pointer=(struct ssg1 *)
calloc(16,sizeof(struct ssg1 ));
if (hash_table[hash_result].ssg_pointer=0) {
printf("Not enough memory"); exit(1);}
ssg=hash_table[hash_result].ssg_pointer;
//Initialisierung SSG
for (j=0; j<16; j++)
{
ssg->flag=0;
ssg->length=0;
ssg->next_hop=0;
ssg->suffix=0;
ssg++;
}
printf("Done");
getchar();
}
an der Stelle "ssg->flag=0" sagt mir der Debuger "Unhandled exception at 0x00843752 in test.exe: 0xC0000005: Access violation writing location 0x00000008." Weiss jemand einen Rat? Noch eine Frage wäre, ob ich direkt über hash_table[hash_result].ssg_pointer in z.B. Flag was reinschreiben kann? Bei hash_table[hash_result].ssg_pointer->flag=0 bekomme ich die selbe Fehlermeldung. Bin neu im Forum, wenn ich was falsch geschrieben habe, entschuldige ich mich im voraus.
Zuletzt bearbeitet: