Hola tengo esto:
bool SaveBeep(int a, int b){
int *c = new int(2);
c[0] = a;
c[1] = b;
if (!CreateThread(0, 0, beepThread, (LPVOID)c, 0, 0))
return 0;
return 1;
}
DWORD WINAPI beepThread(LPVOID p){
int * a = (int*)p;
Beep(a[0], a[1]);
delete[]a;
return 0;
}
Error de memoria en delete[]a;
También probé:
delete &a[0];
delete &a[1];
pero sigue igual.
Primero probé así pero no recibía los int
bool SaveBeep(int a, int b){
int c[2] = { a, b };
if (!CreateThread(0, 0, beepThread, (LPVOID)c, 0, 0))
return 0;
return 1;
}
DWORD WINAPI beepThread(LPVOID p){
int * a = (int*)p;
Beep(a[0], a[1]);
return 0;
}
Ideas??
Un saludo
new int(2)
Eso es para crear 1 int inicializado a 2.
new int[2]
Así es.
Y bueno, del segundo código comentar, que no aseguras de ningún modo que la variable 'c' seguirá existiendo cuando el thread acceda a ella.
Despiste :-\
Gracias..