unsigned char Array
-
b soll das unsigned char Array sein, das die Kopie enthält.
-
IHIEA schrieb:
b soll das unsigned char Array sein, das die Kopie enthält.
In deinem Code von vorhin ist b aber nur ein Zeiger, der nirgendwo hin zeigt...
-
IHIEA schrieb:
@coz i can
Geht das nicht einfacher?warum löscht du deine alten beiträge?!
das ist doch scheiße, dann kann niemand mehr verfolgen worum es ging.#include <stdio.h> #include <memory.h> #define UINT_ARRAYSIZE 3 int main(void) { int i; unsigned int a[UINT_ARRAYSIZE]={6,5,4}; unsigned int b[UINT_ARRAYSIZE]={0}; memcpy ( &b, &a, UINT_ARRAYSIZE*sizeof(unsigned int)); for ( i = 0; i < UINT_ARRAYSIZE; i++) printf("%u\n", b[i]); return 0; }
-
@dot
Wie definiere ich b, sodass die Größe nicht konstant sein muss?
-
IHIEA schrieb:
Wie definiere ich b, sodass die Größe nicht constant sein muss?
Wieso muss die Größe beliebig sein, du kennst doch dein a und weißt daher wohl, wie groß b sein muss!?
-
Die Größe von a ändert sich abhängig von der eingelesenen Datein und deshalb soll b ebenfalls variabel sein.
-
Dann musst du wohl malloc verwenden. Die aktuelle Größe von a wirst du wohl irgendwo gespeichert haben.
-
Fehler: Konstanter Ausdruck erwartet
void test(unsigned char *a) { int len = 16 unsigned char b[malloc(len)]; memcpy(b, a, len) }
-
IHIEA schrieb:
Die Größe von a ändert sich abhängig von der eingelesenen Datein [...]
Und woher weißt du dann, wie groß a sein muss?
-
Die ist abhängig von der Dateigröße.
-
Wenn du aber doch bereits weißt, wie du dein a mit variabler Größe erzeugen kannst, wo genau liegt jetzt dann das Problem, dein b auch entsprechend groß zu erzeugen!?
-
Geschafft! Danke dot!
void test(unsigned char *a, size_t size_a) { unsigned char *b = NULL; b = (unsigned char *)malloc((off_t)(size_a)); memcpy(b, a, (off_t)size_a); }
-
Ähm, was soll copy?
Warum speicherst du das nicht direkt in b?
Und warum ist selbes global?
Ich hoffe, das hast du nicht wirklich so stehen.
-
Nein, der Fehler entstand nur durch die Übernahme in das Testprojekt.
Korrigiert.
-
Wieso arbeitest du da mit off_t und nicht mit size_t?
-
Entstand ebenfalls durch das Kopieren.