Ich möchte ein Programm erstellen, mit dem Namen einfügen und ausdrucken. Aber der Programmabsturz, wann immer es anfängt.C-Programm mit Array char * crash
Das ist mein Hauptklasse:
void main(int argc, char *argv[]) {
int* n = (int*) malloc(sizeof(int));
char listStudent[100][31];
char* name = (char*) malloc(31);
int id;
*n = 0;
addStudent("John ABC", listStudent, n);
addStudent("David Davinci", listStudent, n);
}
Und einige Funktion
void addStudent(char name[31], char listName[][31], int *pn) {
int id;
id = findName(name, listName, *pn);
if(id < 0) {
addName(name, listName, *pn);
printf("%s has been added", name);
} else
printf("The student was exist\n");
}
int findName(char name[31], char listName[][31], int n) {
int found = FALSE;
int i, id;
id = -1;
for(i = 0; i < n && (!found); i++)
if(stricmp(listName[i], name) == 0) {
found = TRUE;
id = i;
}
return id;
}
void addName(char str[31], char listName[][31], int* pn) {
if(*pn > 100)
printf("List is full !!");
else
strcpy(listName[(*pn)++],str);
}
Danke für Ihre Hilfe vorantreiben rufen !!
Willkommen bei Stack Overflow! Es klingt, als müssten Sie lernen, wie Sie einen Debugger verwenden, um durch Ihren Code zu gehen. Mit einem guten Debugger können Sie Ihr Programm Zeile für Zeile ausführen und sehen, wo es von dem, was Sie erwarten, abweicht. Dies ist ein essentielles Werkzeug, wenn Sie programmieren wollen. Weiterführende Literatur: [Wie kleine Programme zu debuggen] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/). –