Прокомментируйте плиз мою функцию...

программирование программы с++

char* getpath(char* path, const char * argv, char *filename)
{
const char * path_ptr = argv;
const char * pos_in_str = strrchr(path_ptr,'\\');
int pos = pos_in_str-path_ptr+1;
//printf("Pos: %d\n",pos);
//char * strncpy ( char * destination, const char * source, size_t num );
path = new char[255]; //max size of path then - 255 symbols
strncpy(path,argv,pos); //to path from argv by size of pos
path[pos]='\0'; //terminating char
#if _DBG_
printf("Our path is %s\n",path);
#endif
//concatenate
char * n = strncat(path, filename, pos);
filename = n;

int i=0;
while(i<=pos)
{
if(n[i]=='\\') filename[i]='/';
if(n[0]=='c') filename[i]='C';
i++;
}
n[strlen(filename)-(size_t)0]='\0';
#if _DBG_
printf("And finally is: %s\n",n);
#endif

return n;
}

Что можно добавить, а что наоборот, нужно исправить?

Примечание:
Без имени, спасибо

Примечание:
EL Alexandro, я бы с радостью, да не охота прослыть быдлокодером...
Ответы:
path = new char[255]; //max size of path then - 255 symbols
я бы поправил на:
if (pos > MAX_PATH)
 return 0;
path = new char[MAX_PATH+1];


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.