Hallo miteinander!
Ich habe gerade ein ziemlich interessantes Problem, wo ich gerade nicht wirklich durchsehe.
Ich habe folgende Schleife:
In "befuellen" wird der etwas prozessiert und das ergebnis in prgResult gespeichert
danach kommt das ergebnis zurück, jedenfalls ist beim debuggen, das richtige ergebnis in pResult[j] (nach dem memcpy).
wenn ich nun zur funktion "speichern" komme, ist dieser vektor aber mit lauter nullen befüllt!
Hat jemand von euch ne idee, woran es liegen könnte?
Ich habe den großteil des codes weggelassen und nur das nötigste gepostet. aber im prinzip ist der ablauf genau so. zuerst in einer funktion befüllen lassen, dann zurück, dann einer anderen funktion übergeben und speichern lassen.
Vielen Dank für jede Hilfe
lg
Ich habe gerade ein ziemlich interessantes Problem, wo ich gerade nicht wirklich durchsehe.
Ich habe folgende Schleife:
Code:
uint32 *prgResult = (uint32*)malloc(sizeof(uint32) * viWidth);
int iRow = 10;
while(x)
{
befuellen(prgResult, iRow);
speichern(prgResult, &iRow);
}
In "befuellen" wird der etwas prozessiert und das ergebnis in prgResult gespeichert
Code:
uint32 **prgX = 0;
// hier nur abgekürzt hingeschrieben:
prgX = createMatrixUnit32(15,15);
uint32** createMatrixUint32(int iSizeX, int iSizeY)
{
uint32** pMatrix;
pMatrix = (uint32**)malloc(sizeof(uint32*) * iSizeX);
for(int i = 0; i < iSizeX; i++) {
pMatrix[i] = (uint32*)malloc(sizeof(uint32) * iSizeY);
}
for(int i = 0; i < iSizeX; i++) {
for(int j = 0; j < iSizeY; j++) {
pMatrix[i][j] = 0;
}
}
return pMatrix;
}
void befuellen(uint32 *pResult, int iRow)
{
for (int j = 1; j < iCountColumns-1; j++)
{
// prgX ist eine Matrix die im vorherein bereits allokiert wurde - dies wird persistent gespeichert!
// hier steht auch mein ergebnis drinnen
prgX[iRow][j] = 10 + 1 + 1; // zum beispiel
memcpy(&pResult[j],&prgX[iRow][j], sizeof(uint32));
}
}
danach kommt das ergebnis zurück, jedenfalls ist beim debuggen, das richtige ergebnis in pResult[j] (nach dem memcpy).
wenn ich nun zur funktion "speichern" komme, ist dieser vektor aber mit lauter nullen befüllt!
Code:
void speichern(uint32 *pResult, int *iRow)
for (int j = 0; j < 10; j++)
{
uint32 iY = pCNNResult[j];
if (iY == 0)
int y = 0; // kommt immer hier her
prgYBuffer[*piRow][j] = iY; // immer 0
}
}
Hat jemand von euch ne idee, woran es liegen könnte?
Ich habe den großteil des codes weggelassen und nur das nötigste gepostet. aber im prinzip ist der ablauf genau so. zuerst in einer funktion befüllen lassen, dann zurück, dann einer anderen funktion übergeben und speichern lassen.
Vielen Dank für jede Hilfe
lg
Zuletzt bearbeitet: