Ich habe ein Problem mit strcpy in C. Mein Code:strcpy Problem mit char Zeiger in c
student.h
#include <stdlib.h>
#include <string.h>
typedef struct {
char *name; /**< char pointer to name of Student */
char *grades; /**< char pointer to grades of labs */
float mark; /**< float as mark of labs */
} Student;
Student *new_student(char *, char *);
student.c
include "student.h"
Student *new_student(char *name, char *grades) {
if (name == NULL || strlen(name) == 0) return NULL;
char *marks = "";
//if (grades == NULL) grades = "";
if(grades == NULL){
marks= "";
}
else{
marks= grades;
}
Student *test;
test = (Student*) malloc(sizeof(Student));
(void)strcpy(&test->name, name);
(void)strcpy(&test->grades, noten);
return test;
}
und mein Hauptcheck.c
#include <stdlib.h>
#include "student.h"
int main() {
Student *s;
s = new_student("Test", "ABC");
printf("%s",&s->name);
/*(void)test_student(0, NULL);*/
return EXIT_SUCCESS;
}
Das Problem ist, die printf-Anweisung gibt TestABC statt nur Test zurück. Ich verstehe es einfach nicht. Ich möchte nur den Namen nicht den Namen und die Noten zusammen in meiner Printf-Anweisung. Kann jemand helfen?
Sehen Sie sich Ihre 'Student' Struktur und Fragen Sie sich, wo Sie diese Saiten aufbewahren. Ich sehe keine Arrays, oder? –