2017-02-12 3 views
-2

Ich muss Char in Char-Array hinzufügen. Dies ist mein Code:Char in Char-Array in C hinzufügen

#define BUFFSIZE 1024 
char *first_name[][BUFFSIZE]; 
char *last_name[][BUFFSIZE]; 

int j = 0; 
first_name[][j] = "John"; 
last_name[][j] = "Doe"; 

Ist dies der richtige Weg zur Eingabe von „John“ und „Doe“ in der Null-ten Position der jeweiligen Arrays?

+1

Informieren Sie sich über 'strcpy' und auch müssen Sie vielleicht' char first_name [BUFFSIZE]; ' –

Antwort

0

Ihre Erklärung

char *first_name[][BUFSIZE]; 

deklariert einen 2-dimensionalen Array von Zeigern. Wenn Sie ein Array von Zeichenfolgen möchten, sollte es sein:

char first_name[][BUFSIZE]; 

Allerdings fehlt die Größe der ersten Dimension. Das Weglassen der Größe ist nur in Funktionsargumentdeklarationen erlaubt, da es eigentlich eine Abkürzung für die Deklaration eines Zeigers ist (da ein Array an eine Funktion übergeben wird) oder an die Deklaration eines flexiblen Array-Elements (das das letzte Mitglied von sein muss) a struct, also können Sie nicht zwei von ihnen in der gleichen Struktur haben). Ich nehme an, dass Ihre Variablen tatsächlich Funktionsparameter sind.

Sie nicht Zuordnung verwenden können in einem String in C zu füllen, Sie strcpy() verwenden:

strcpy(first_name[i], "John"); 
+0

Ich habe es versucht. Aber das Array behält seine Werte nicht bei. Der first_name befindet sich innerhalb einer for-Schleife und der Wert scheint sich für first_name [0] nach der 3. oder 4. Iteration zu ändern. –

+0

Bitte veröffentlichen Sie ein [MCVE] (http://Stackoverflow.com/help/mcve), das das Problem veranschaulicht. – Barmar

+0

Sie können den Code zugreifen hier https://docs.google.com/document/d/1T4j3S_MEd0EKekMGGKi0z-nQYZVQmou1mUdUrn3x7rE/edit?usp=sharing –