Mi problema es el siguiente:
Quiero que mi thread me modifique una cadena de chars que tengo declarada al inicio del .cpp, así de simple.
Pero cuando lo hago, dentro del char se modifica, pero luego cuando la printo por pantalla en el programa principal (fuera del thread) la variable esta como inicialmente.
En mi opinión, creo que tiene algo que ver con que el thread duplica los recursos (variables) para utilizarlos como variables locales y que no afecten al programa principal.
Os dejo aqui el codigo:
Cita:
#include <thread>
using namespace std;
char *ip;
DWORD WINAPI Function(param_accept param){
ip = param.buffer;
printf("Ip: %s",ip); // Me lo printa bien
return 0;
}
int main(){
thread aux;
.....
aux = thread(Function,ref(param)); // Param es una struct con un buffer lleno (para no poneros todo el codigo aqui...)
Sleep(5000); // Le doy tiempo de sobras para que modifique el valor
printf("Ip final: %s", ip); // Y EL VALOR ES EL INICIAL!!!! NO SE MODIFICA!!!
}
using namespace std;
char *ip;
DWORD WINAPI Function(param_accept param){
ip = param.buffer;
printf("Ip: %s",ip); // Me lo printa bien
return 0;
}
int main(){
thread aux;
.....
aux = thread(Function,ref(param)); // Param es una struct con un buffer lleno (para no poneros todo el codigo aqui...)
Sleep(5000); // Le doy tiempo de sobras para que modifique el valor
printf("Ip final: %s", ip); // Y EL VALOR ES EL INICIAL!!!! NO SE MODIFICA!!!
}