您可以使用 malloc 获取内存或将指针指向一个已经存在的变量。
char word[3];
char *l;
l = word;
现在你可以做这样的任务了:
*l = 'c';
*(l+1) = 'g';
*(l+2) = '\0';
但是现在你想将它复制到另一个指针,这个指针必须指向另一个字符串,否则你应该为它分配内存。
char *pointer_to_second;
char second[3];
pointer_to_second = second;
或者,如果您更喜欢动态内存,请将上面的 3 行更改为下面的这一行:
char *pointer_to_second = malloc(sizeof(char) * 3);
之后你就可以做你想做的事了:
strcpy(pointer_to_second, l);
但是请记住,如果您使用的是 C 编译器,则必须在开始时声明所有变量,否则会出错。如果您使用的是 C++ 编译器,则不必担心。
当您尝试访问不属于您的向量的字段时,会发生分段错误。例如,如果您尝试这样做:
printf("The value in position 3 of my pointer is %c\n", *(l + 3));
您可能会遇到错误,因为您的指针有 3 个位置,而您正试图访问第 4 个位置。