問題は、ポインタの配列を扱うのが実際にはわからないということです。ポインタの配列の位置に渡します。すべての位置、最後の入力。しかし、*演算子を使用すると、最初の文字だけが渡されます。ポインタの配列の入力文字列
int main(void) {
void prompt_str(const char *str[], char *const copy); //prototype
const char *str[ 20 ]= { '\0' };
const char *copy= 0;
//prompt stringa
prompt_str(str, ©);
} //end main
void prompt_str(const char *str[], char *const copy) { //definition
size_t n_str= 0, i= 0;
do {
printf("Insert a string\n:");
fgets(copy, 100, stdin);
i= (strlen(copy)- 1); //get length
copy[ i ]= '\0'; //remove \n
str[ n_str++ ]= copy; //put string into pointer of array
} while (n_str< 3);
}
あなたは 'のconstのchar *コピー= 0、入力を格納するための部屋を持っていない;' - > 'char型のコピー[100];' –
@KeineLustは真実ではありません..コピーで私は文字列を取得する、私は定義された配列を使用したくない、それは無駄なスペースを引き起こし、charへのポインタで、それは私がそれで入力した要素だけをとります。 – dnt994
あなたは正しいです、幸運は100バイトをアドレスに格納しています:) –