2. element im 2d array auf null setzen

Gast #6223302
Hallo,

ich habe ein 2d-Array
1
char signs[][2] = {{'A',0},{'B',0}....}

die zweiten werte werden im code hochgezählt.
Wie kann ich diese am einfachsten und schnellsten wieder auf 0 setzen?
Mit einer for-schleife alles durchgehen? Oder ist so etwas auch mit 
memset möglich?
Gast
memset, memcpy und co. unterstützen leider kein stride[1]. Bei dieser 
Datenstruktur musst du also auf ne schleife zurück greifen.

Falls du die Werte in unterschiedliche Arrays packen kannst, könnte man 
memset wieder nehmen, also:
1
char sign_letter[] = {'A', 'B', 'C', ...};
2
int sign_count[sizeof(sign_letter)/sizeof(*sign_letter)] = {0};
3
...
4
  memset(sign_count, 0, sizeof(sign_count));

1) https://en.wikipedia.org/wiki/Stride_of_an_array
Gast
Felix schrieb:
> ich habe ein 2d-Arraychar signs[][2] = {{'A',0},{'B',0}....}

ändere die Reihenfolge dann kanns du es:
1
    #define LINES 2                                                     
2
    #define COLS 5                                                      
3
                                                                        
4
    unsigned char my_array[LINES][COLS]={                               
5
        {'a', 'b', 'c', 'd', 'e'}, {5,4,3,2,1}};                        
6
                                                                        
7
    for(int i=0; i<COLS; i++)                                           
8
            printf("(%c, %d)\t", my_array[0][i], my_array[1][i]);       
9
                                                                        
10
                                                                        
11
    memset(my_array+1, 0, COLS*sizeof(char));                           
12
    puts("");                                                           
13
                                                                        
14
    for(int i=0; i<COLS; i++)                                           
15
            printf("(%c, %d)\t", my_array[0][i], my_array[1][i]);

(ein Array mit "x-Zeilen und 2 Spalten" durch ein Array mit "2 Zeilen 
und x Spalten" ersetzen)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.