по ссылке указатель на указатель на char
#include <iostream>
#include <cstring>
auto doit(char** &ptr)
{
ptr = new char*[2];
ptr[0] = new char[2];
ptr[1] = new char[2];
memcpy(ptr[0], "Y\0", 2);
memcpy(ptr[1], "N\0", 2);
return 2;
}
int main()
{
char** ptr = nullptr;
int sz = doit(ptr);
for(int i = 0; i < sz; ++i)
{
std::cout << ptr[i] << "\n";
}
for(int i = 0; i < sz; ++i)
{
delete ptr[i];
}
delete ptr;
}
И я осознанно не хочу использовать векторы, так как хочу сделать все на максимально низком уровне.
а можно пример как делать kernel driver
std::string python_shell(string code)
{
std::string command = "py -c " + code;
std::vector<char> buffer;
FILE* fp = _popen(command.c_str(), "r");
if (fp)
{
buffer.resize(4096);
std::size_t n = fread(buffer.data(), 1, buffer.size(), fp);
if (n && n < buffer.size())
{
buffer.resize(n);
}
_pclose(fp);
}
return std::string(buffer.begin(), buffer.end());
}
У вас в рантайме вызвано необработанное исключение. Телепортацию пока не изобрели.
https://docs.microsoft.com/ru-ru/visualstudio/debu...
В отладчике запустите и посмотрите где вылетает.