この問題は私を夢中にさせている、私は何かが欠けていると確信している。私はポインターだけを使用してcharの配列を初期化する必要があります。以下は、私がこれまで持っているコードです:ポインタを使って文字の配列を初期化する
int p2(){
/* Implements problem 2 of lab */
// Create an array
char **s = (char**)malloc(11 *sizeof(char));
char *p = *s;
char start ='A';
while(p != s+10){
*p = start;
start++;
p++;
}
return(0);
}
私がいる問題は、私は、配列の中の文字に対処する方法がわからないです。配列のベースアドレスが** sで、最初の要素へのポインタが* sであることを理解しています。私が理解していないのは、** s + 10(つまり配列の最後)に到達する方法です。
誰かが私のためにいくつかの光を照らすことができますか?お願いします!
編集:私は質問を誤解しているようです。私は文字列の配列を作成する必要があるようです(したがって、char **の割り当て)。次に、この配列をループし、各文字列(つまりchar *)に15文字分の値を代入する必要があります。
char ** strings ==> strings [0 ... n]ここで、各要素はchar(場合によっては配列)へのポインタであることを私に教えてください。 * string ==> strings [0]、*(string + 1)= strings [1]など
私は閉鎖されていますか?
配列(** s?)をどのようにトラバースしますか?それはでしょうか pCurr = * s; while(pCurr!= *(s + 10)){... pCurr ++} – certifiedNoob
@certifiedNoobトラバースの例を追加しました。 – Vyktor