使用指针将 char 分配给 char*

QBl*_*QBl 1 c arrays pointers char

假设我有一个 char *str 并且我想使用指针和递增来一次一个地为其分配字符?

我已经搞定了 :

char *str;
char c = 'a';
*str++ = c;
Run Code Online (Sandbox Code Playgroud)

但这不起作用。

我怎样才能做到这一点 ?

小智 5

str只是一个指针。它没有指向任何有效的地方(特别是没有指向您可以写入的某些内存)。一个简单的可能性是让它指向一个数组:

char buf[1024] = {0}; // room for 1024 chars (or 1023 + a 0 byte for a string)
char *str = buf;
char c = 'a';
*str++ = c;
Run Code Online (Sandbox Code Playgroud)