ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

16.02.2009, 20:02
|
|
Познающий
Регистрация: 22.01.2007
Сообщений: 40
Провел на форуме: 179857
Репутация:
4
|
|
ничё не получилось
|
|
|

16.02.2009, 20:05
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Это как?
|
|
|

16.02.2009, 20:40
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
#include <winows.h>
CreateDirectory();
|
|
|

17.02.2009, 00:24
|
|
Познающий
Регистрация: 07.09.2008
Сообщений: 79
Провел на форуме: 272452
Репутация:
10
|
|
Сообщение от rudvil
Всем здрасьте)
Возникла проблема =[ можно ли в пользовательской функции сделать ретурн массива,пример:
Код:
string test()
{
string names[1];
names[0] = "test";
return names;
}
при таком раскладе пишет ошибку(неверный параметр в ретурне как-то так)
пробовал делать так:
Код:
string[] test()
{
string names[1];
names[0] = "test";
return names;
}
и так:
Код:
string test()
{
string names[1];
names[0] = "test";
return names[];
}
всеравно пишет ошибку...
Собственно и вопрос как правильно реализовать ретурн массива?
А string это случайно не класс ? 
В C твоя проблема решается так :
Код:
char *func(void)
{
char *str = (char*)malloc( sizeof(char) * 16 );
// do something...
// end return pointer to char
return str;
}
В как в C++ не могу точно сказать, но можно по пробовать такой же вариант как в C.
|
|
|

17.02.2009, 00:40
|
|
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме: 2066562
Репутация:
86
|
|
2xismyname, боюсь это не то что я имел ввиду, но все равно спасибо)
Сейчас приведу пример(не рабочий) но покажу хотябы свиду что я имел ввиду...
Код:
string test()
{
string data[3];
data[0] = 'Hello1';
data[1] = 'Hello2';
data[2] = 'Hello3';
/*Что-то типо такого и затем эту переменную data вернуть т.е. сделать return*/
return data;//А вот тут пишет ошибку =[
}
|
|
|

17.02.2009, 02:00
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
попробуй обьявить массив до вызова ф-ции и передавай в ф-цию массив как параметр в ф-цию и возвращять не надо ничё т.к вроде массив этот как указатели ... тоесть имя массива это указатель на первую ячейку последовлольности ячеек памяти (сам не понел чё сказал  ) чёт типо того =)
|
|
|

17.02.2009, 12:50
|
|
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме: 2066562
Репутация:
86
|
|
Сообщение от Doom123
попробуй обьявить массив до вызова ф-ции и передавай в ф-цию массив как параметр в ф-цию и возвращять не надо ничё т.к вроде массив этот как указатели ... тоесть имя массива это указатель на первую ячейку последовлольности ячеек памяти (сам не понел чё сказал  ) чёт типо того =)
Смысл понял), но не прокатывает... пишет такуюже ошибку =[
Код:
c:\users\rudvil\documents\visual studio 2008\projects\learn_arrays\learn_arrays\arrays.cpp(40) : error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it)' : cannot convert parameter 1 from 'std::string [3]' to 'std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
1> Constructor for struct 'std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it' is declared 'explicit'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
Хм, а это вообще можно делать в C++?...
|
|
|

17.02.2009, 13:32
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
Код:
#include <string>
#include <iostream>
void test(std::string []);
int main()
{
std::string test2[3];
test(test2);
std::cout << test2[2];
return 0;
}
void test(std::string test[])
{
test[0] = "data";
test[1] = "data2";
test[2] = "data3";
}
всё отлично коплится
|
|
|

17.02.2009, 13:39
|
|
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме: 2066562
Репутация:
86
|
|
2Doom123 наигромаднейшее тебе спасибо!!!!  все работает на ура)))
|
|
|

17.02.2009, 14:39
|
|
Познающий
Регистрация: 22.01.2007
Сообщений: 40
Провел на форуме: 179857
Репутация:
4
|
|
#include "stdafx.h"
#include "windows.h"
#include <iostream>
int main()
{
STARTUPINFOA si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
ZeroMemory( &pi, sizeof(pi) );
SECURITY_ATTRIBUTES secat;
secat.nLength = sizeof(SECURITY_ATTRIBUTES);
secat.bInheritHandle = TRUE;
HANDLE newin, writein;
CreatePipe(&newin,&writein,&secat,0);
si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWNORMAL;
si.hStdInput=newin;
GetStartupInfoA(&si);
si.cb;
CreateProcessA(NULL, "cmd.exe", NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
DWORD bytes;
char command[100] = "mkdir 1254655553";
WriteFile(writein, command, 100, &bytes, NULL);
std::cin.get();
}
Дяди! Патчему папка не создаётся? бот в шоке ))
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|