ポインターを介して間接的に値を渡すことができることを理解しています。あるアドレス (ポインター) に値 (*) を割り当てて、何か (char など) に等しくすることを指定します。
// This works: I can pass char indirectly via pointers
// by saying "value at char pointer line equals c1 or c2"
char c1 = 'a';
char c2 = 'b';
char* line;
*line = c1;
*(line+1) = c2;
上記の *(line+1) を使用して、メモリ空間を右にスライドできます。ただし、ループすると、これは失敗します(以下):
// Output: "Process returned -1073741819 (0xC0000005)"
// Why?
char c;
char* line1;
int i = 0;
while ((c = getchar()) != EOF){
*(line1+i) = c;
i++;
}
出力: 「プロセスは -1073741819 (0xC0000005) を返しました」
while ループで反復しようとすると、ポインターを介して間接的に値を渡すことができないのはなぜですか? 本当にありがとう!