Итак, у меня есть этот strcpy с таблицами, но мне нужно изменить его, чтобы не было таблиц и были только указатели. Когда я пытаюсь это сделать, возникает ошибка (я ставлю $$ впереди)
Итак, оригинал:
#include <iostream>
using namespace std;
int main() {
char *mon_strcpy(char destination[], char source[]) {
int index = 0;
while (source[index] != '\0') {
destination[index] = source[index];
index++;
}
destination[index] = '\0';
return destination;
}
return 0;
}
И это тот, который я пытаюсь заставить его работать:
#include <iostream>
using namespace std;
int main() {
char *mon_strcpy(char *destination, char *source) $${
int index = 0;
while (*source != '\0')
{
*destination = *source;
index++;
}
*destination = '\0';
return destination;
}
return 0;
}
Я не могу обернуться, чтобы найти проблему .. TIA
В оригинале такая же ошибка.
Несколько результатов поиска [c++] a function-definition is not allowed here before '{' token
: Не разрешено ли здесь определение функции перед токеном '{'? и Ошибка: здесь не допускается определение функции перед токеном '{' в строке 6
В C и C++ вы должны объявить-определить функцию вне другой функции (здесь main()
). Что-то вроде:
char *mon_strcpy(char *destination, char *source) { ... }
int main () {
mon_strcpy(dst, src);
}
Также запрещается использовать знак $$
внутри кода C++, за исключением комментариев.
Это просто устраняет ошибку компилятора, которая у вас есть.
Если у вас проблемы с логикой функции, почему она не работает? Возможно, вы захотите выполнить отладку, за которой следует новый вопрос.
О, спасибо! Я попробовал, и это сработало! Код сам по себе нормально работает с указателями (если он вне основного)? Я не уверен в том, как я сделал это в указателях, отличных от таблиц.
@AnnieMissPomme, если ваша ошибка была исправлена, вы можете принять этот ответ, нажав «правую галочку» рядом с моим сообщением. Я не уверен, что ваш существующий код может работать, поскольку в нем много открытых областей и проблем; например каковы размеры памяти, выделенной для указателей ИЛИ они находятся в стеке и так далее. Это стоит нового отдельного вопроса.
"Когда я пытаюсь это сделать, возникает ошибка (я поставил $$ впереди)" Пожалуйста, не делайте этого. Покажите код, который у вас есть на самом деле; не пытайтесь отметить это. Чтобы объяснить ошибку, покажите полное сообщение об ошибке, скопировав и вставив его в формате кода.