000
28.06.2005, 10:31 Uhr
~Marco_more
Gast
|
hallo zusammen,
bin noch recht neu in der c-programmierung und hab auch gleich ein problem. folgender code lässt sich kompillieren, läuft aber leider nicht...
C++: |
int parsePermissions(char* string, unsigned int* permission) { char* temp; char* tok;
*permission = 0; if (!string) return 0;
temp = strtok_r(string, PERMISSION_SEPERATOR, &tok); while(temp) { if(strcmp(temp, PERMISSION_READ_STRING)==0) { *permission |= PERMISSION_READ; } else if(strcmp(temp, PERMISSION_ADD_STRING)==0) { *permission |= PERMISSION_ADD; } else if(strcmp(temp, PERMISSION_CONTROL_STRING)==0) { *permission |= PERMISSION_CONTROL; } else if(strcmp(temp, PERMISSION_ADMIN_STRING)==0) { *permission |= PERMISSION_ADMIN; } else { return -1; } temp = strtok_r(NULL, PERMISSION_SEPERATOR, &tok); } return 0; }
|
PERMISSION_SEPERATOR usw. sind als normale strings definiert!
hab ich nun folgende drei zeilen code:
C++: |
int unsigned test; char* pm = "read,add"; parsePermissions(pm, &test);
|
sagt mir das programm bei der programmausführung, speicherzugriffsfehler. allerdings finde ich keinen fehler in der logik! was mache ich falsch?
vielen dank!!!
gruß, marco.
(gcc 3.4.3) |