C で動的に割り当てられた文字列がどのように機能するかわかりません。以下に、文字列へのポインタを作成して 0 メモリを割り当てたと思われる例を示しますが、それでも文字を与えることができます。私は明らかに何か間違ったことをしていますが、何ですか?
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
char *str = malloc(0);
int i;
str[i++] = 'a';
str[i++] = 'b';
str[i++] = '\0';
printf("%s\n", str);
return 0;
}