Я пытаюсь сделать функцию strcpy с нуля для класса. Хотя я мог бы сделать это с циклом for и скопировать отдельные символы, я думаю, что я мог бы просто сделать своп, используя malloc и указатели, чтобы сделать его более эффективным. Вот мой код, но я получаю много запутанных ошибок.Можно ли эмулировать strcpy с помощью malloc?
void notStrcpy(char s1[], char s2[]) { //copies string s1 into s2
char *s3 = (char *) malloc(strlen(s1)); //s3 is now an alias of s1
s2 = *s3;} //dereference s3 to dump s1 into s2
Почему это происходит, и есть ли способ сделать этот код таким, каким я его намеревался?
Нет, абсолютно не нравится. Вы не можете скопировать строку с оператором присваивания. В этом весь смысл 'strcpy'. Если для оператора присваивания поддерживается копирование строк, не будет необходимости в 'strcpy'. – kaylum
все об этом не так –
«Я получаю много запутанных ошибок» - смущает вас? Представьте, что это от * нашего * конца, поскольку мы даже не можем видеть ошибки, которые вас путают, поскольку вы решили не делиться ими в своем вопросе. Независимо от того, что вы пытаетесь сделать, это бесплодная работа, и некоторые дополнительные исследования того, как используются указатели на C, должны быть подняты в повестке дня ваших исследований. – WhozCraig