如果我创建像在C中,我可以将字符串保存为char *,然后使用指针指向其他字符串?
char string[6] = "hello";
char* ptr = (char*) malloc(sizeof(string));
strcpy(ptr, string);
一个字符串,然后我这样做:
char* ptr2 = ptr;
将它的工作?
一般来说,如果我有一个char *指向字符串的指针,我可以让其他指针指向那个字符串,并且初始指针指向另一个字符串吗?
[编辑]
感谢您的反馈,但我有点困惑。我会尝试从头开始。
我有我的主要在我做了scanf函数读取一个字符串,它不是固定大小的,但有一个最大长度。我读到这样的
char* input; scanf("%as", &input);
。我认为'a'标志会自动分配所需的内存以适应字符串。然后,我必须调用函数
foo(char* s)
,它将字符串作为输入。在函数内部,我必须将字符串存储在内存中。我有两个选择:使用参数或创建一个新的malloc和strcpy并使用新的字符串。哪两个是正确的?我只需要存储字符串的内存位置,稍后再引用它。
如果我使用参数并将它的存储位置存储在某处,这是安全的还是因为指向字符串的指针是常量会导致任何问题?用malloc创建另一个字符串是否可以解决任何问题,或者它是同一个问题?
直到现在,我已经尝试了几种组合,但我无法实现我想要的。任何帮助表示赞赏。
只要你已经为所有的实际字符串(无论是通过malloc还是声明char数组)分配空间,你的建议应该适用于你的指针。 – GreenMatt 2011-03-11 16:47:41