文字列配列を動的に割り当てたかったのですが、プログラムはユーザーに文字を要求し、文字 'q' が入力されるまで配列の最初の文字列にそれらを収集することになっています。その後、プログラムは文字を 2 行目に追加し始めます。 .
文字のメモリ位置を印刷すると、一度だけインクリメントしますが、各文字が 1 つではなく 2 つのメモリ セルを使用するように見えます。
これが私のプログラムのソースコードです
#include <stdio.h>
void main()
{
char** txt;
char* baseAddress;
txt = (char **)malloc(5*sizeof(char*));
*txt = (char *)malloc(20*sizeof(char));
baseAddress = *txt;
while (*(*txt) != 'q')
{
(*txt)++;
scanf("%c", (*txt));
printf("%p\r\n", (*txt));
}
*txt = '\0';
printf("%p", baseAddress);
free(baseAddress);
free(txt);
}
出力はこのようなものです
>j
>0x9e12021
>0x9e12022
>s
>0x9e12023
>0x9e12024
>
ポインターに問題がある可能性があると思います。これを達成するにはどうすればよいですか?そして悪い英語でごめんなさい