我想动态分配一个字符串数组,程序应该向用户询问字符并将它们收集到数组的第一个字符串中,直到输入字母'q'然后程序开始将字符添加到第二行等等.
当我打印字符内存位置时,似乎每个字符都占用两个内存单元而不是一个,尽管我只增加了一次。
这是我的程序的源代码
#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
>
我认为指针可能有问题。我该怎么做呢?抱歉英语不好