KillerPinockel
Lieutenant
- Registriert
- Jan. 2009
- Beiträge
- 632
Hey,
ich habe ein kleines Problemchen, was sich sicher schnell zu lösen läst.
Mein Programm erstellt ein recht großes Array (und das ist auch so gewollt). Danach soll das Array (als Referenz) an eine Funktion übergeben werden und bspw ein paar Werte auf "1" gesetzt werden.
Wenn ich aber im Anschluss die Werte ausgebe, dann steht nur "0" drin. Hier mal der Code:
Main:
Func:
Ich weiss nicht ob es wichtig zu erwähnen ist, dass ich die Func in einer seperaten Datei (*.cu inkl *.h) liegen habe. Includiert habe ich aber alles soweit richtig.
Hoffe Ihr könnt mir beim meinem sicher kleinen Problem helfen
Danke!
ich habe ein kleines Problemchen, was sich sicher schnell zu lösen läst.
Mein Programm erstellt ein recht großes Array (und das ist auch so gewollt). Danach soll das Array (als Referenz) an eine Funktion übergeben werden und bspw ein paar Werte auf "1" gesetzt werden.
Wenn ich aber im Anschluss die Werte ausgebe, dann steht nur "0" drin. Hier mal der Code:
Main:
Code:
unsigned long int SIZE = 500 * 500 * 10000
float *result;
cudaMallocHost(&result, SIZE * sizeof(float));
func(result);
.
.
.
//Einfach mal ausgeben um zu schauen, ob es funktioniert hat
int i;
for (i=0; i<10000; i++)
printf("%f \n", result[i]);
Func:
Code:
void func(float *result)
{
//10000 Werte auf "1" setzen
int i;
for (i=0; i<10000; i++)
result[i] = 1;
}
Ich weiss nicht ob es wichtig zu erwähnen ist, dass ich die Func in einer seperaten Datei (*.cu inkl *.h) liegen habe. Includiert habe ich aber alles soweit richtig.
Hoffe Ihr könnt mir beim meinem sicher kleinen Problem helfen
Danke!
Zuletzt bearbeitet: