unsigned char Array
-
Ich möchte nun ein unsigned char Array in ein komplett unabhängiges neues kopieren.
Vorschläge?!
-
memcpy?
-
std::copy
-
TyRoXx schrieb:
std::copy
Falsche Sprache.
-
SeppJ schrieb:
TyRoXx schrieb:
std::copy
Falsche Sprache.
Finde ich auch. C ist die falsche Sprache.
Falls hier wirklich ein Array mit konstanter Länge gemeint ist, verpacke es in einer Struktur und kopiere Objekte der Struktur mit dem Zuweisungsoperator. Da kann am wenigsten schief gehen.
-
IHIEA schrieb:
Ich möchte nun ein unsigned char Array in ein komplett unabhängiges neues kopieren.
Vorschläge?!ja.
ansätze?TyRoXx schrieb:
Finde ich auch. C ist die falsche Sprache.
troll.
-
Neuer Sourcecode.
-
b muss ein unsigned char array sein, len groß.
len ist die Länge von a.
-
Wenn ich len definieren will, muss ich einen konstanten Wert eingeben.
Was mache ich falsch?
-
void test(unsigned char *a) { int len = 16 unsigned char b; /* Wie richtig b definieren ?! */ memcpy(b, a, len) }
-
Du sagest, du wolltest ein Array in ein anderes kopieren. Ich seh da oben keine Arrays, nur Pointer...
-
#include <stdio.h> #include <string.h> #define MY_UNSIGNED_ARRAY_SIZE 3 typedef struct my_unsigned_array_tag { unsigned array[MY_UNSIGNED_ARRAY_SIZE]; } my_unsigned_array_t; void display_unsigned_int_array(my_unsigned_array_t* puint_array) { size_t i; for ( i = 0; i < MY_UNSIGNED_ARRAY_SIZE; i++ ) printf ( "%2u ", puint_array->array[i] ); putchar('\n'); } void copy_uint_array(my_unsigned_array_t* dst, my_unsigned_array_t* src) { *dst = *src; } int main(void) { my_unsigned_array_t a = {77,88,99}; my_unsigned_array_t b = {0}; display_unsigned_int_array(&a); display_unsigned_int_array(&b); copy_uint_array(&b, &a); display_unsigned_int_array(&b); return 0; }
-
....
-
@dot
Der Pointer (unsigned char *a) zeigt auf das Array, das ich kopieren möchte.@coz i can
Geht das nicht einfacher?
-
IHIEA schrieb:
@dot
Der Pointer (unsigned char *a) zeigt auf das Array, das ich kopieren möchte.Und worauf zeigt b?
-
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!?