Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/08/2014, 02:56
rooger99
 
Fecha de Ingreso: junio-2014
Mensajes: 8
Antigüedad: 9 años, 10 meses
Puntos: 0
[Threads en Windows] El thread no me modifica una cadena de chars

Hola!
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!!!
}