2016-03-21 27 views
1

Aşağıdaki satırı derlediğimde, "char * [80] 'türüne" atayken "uyumsuz türler alır" char ** '"hatası. Hem 'nw' hem de 'kaynak' cümledir (cümle yapı tipinden). Bu soru, başka yerlerde tartışılmayan iki boyutlu dizilerle uğraşan diğerlerinden farklıdır.'char * [80]' türünü "char **" türünden atama yaparken uyumsuz türler

nw.sentence = source->sentence; 

cümle yapısı türüdür:

typedef struct { 
    char *sentence[MAX_LINE_LENGTH]; 
} sentence; 

teşekkürler.

cevap

0

Eğer bu x diğer bir deyişle bir int için bir gösterici, int * tip sahip olduğu anlamına gelir beyanı

int *x; 

olduğunu varsayalım. Aynı mantık, beyan

char *sentence[MAX_LINE_LENGTH]; 

olarak (MAX_LINE_LENGTH elemanlarının bir dizisidir) sentence[MAX_LINE_LENGTH] her elemanın, diğer bir deyişle bir dizgeye bir gösterici, char * tip sahip olduğu anlamına gelir.

Sonuç olarak, char *sentence[MAX_LINE_LENGTH] öğesinin her öğesi bir dizeye işaret eder. Sonuncusu dizeye işaretçi bir işaretçisi gibi bu beyanı

char ** sentence; 

farklıdır.

İlgili konular