我有两个函数,一个用于创建指向字符串的指针,另一个用于操作它.然而,我错过了一些关键的东西:
int foo() {
char * mystring; // Create pointer
bar(&mystring); // Pass in address
printf("%s\n", mystring);
return 0; // There's a reason for this
}
int bar(char ** mystring) {
mystring[0] = malloc(strlen(mystring) + 1); // Since malloc will persist even after exiting bar
*mystring = "hahaha"; // Dereference
return 0;
}
Run Code Online (Sandbox Code Playgroud)
对我的大脑的任何启发都将非常感激!
C没有字符串作为第一类值; 你需要用来strcpy()分配字符串.
strcpy(mystring[0], "hahaha");
Run Code Online (Sandbox Code Playgroud)