ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
984
984
EMPFEHLEN
-
Hallo miteinander!
Ich habe gerade ein ziemlich interessantes Problem, wo ich gerade nicht wirklich durchsehe.
Ich habe folgende Schleife:
Code :1 2 3 4 5 6 7 8
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 :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
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 :1 2 3 4 5 6 7 8 9 10 11 12 13
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
lgGeändert von Shadow (11.03.10 um 22:23 Uhr)
-
Hallo,
hab deinen Code nur kurz überflogen, aber vielleicht hilft das ja schon weiter:
Hast du wirklich uint32 *prgResult als Parameter da stehen? Das sieht mir etwas komisch aus. Der Signatur von speichern nach zu urteilen solltest du beim Aufruf als zweiten Parameter die Adresse &iRow übergeben und nicht iRow.
Grüße,
Matthias„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
Hallo!
Danke für die Antwort! Hab noch mal nachgeguckt, ich hab mich nur hier im Forum vor lauter Eile vertippt.
Ist nun korrigiert.
lg
-
Ich werd aus deinem Code nicht schlau. Was haben befuellen und speichern miteinander zu tun? Was ist pCNNResult? Was ist prgYBuffer? Hast du da vielleicht ein paar Namen durcheinander gebracht?
Ähnliche Themen
-
C - 2D Array an Funktion übergeben - Pointer
Von Manda im Forum C/C++Antworten: 6Letzter Beitrag: 17.11.09, 14:24 -
Gibt es in Word eine Funktion, die das Dokument am Ende nach Fehler durchsucht?
Von multitasker im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 06.05.08, 18:03 -
pointer auf funktion
Von xkris im Forum C/C++Antworten: 2Letzter Beitrag: 02.04.07, 19:40 -
50x Ping aber nach jedem 5 Sekunden warten - ohne sleep funktion
Von Jasi im Forum C/C++Antworten: 8Letzter Beitrag: 23.10.05, 01:00 -
PHP Funktion in JavaScript Funktion aufrufen, aber wie ?
Von blumshuett im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 24.03.05, 11:32





Zitieren


Login






