我想通过一个char *并在另一个函数中进行更改,但不知何故它一直给出seg故障。C通过char *作为地址
的完整代码:
#include <stdio.h>
void getString(char** str) {
*str[0] = '$';
char c;
int i = 1;
while ((c = getchar()) != '$') {
if (c != '\n') {
*str[i-1] = c;
i++;
}
}
*str[i] = '\0';
}
int main (int argc, char *argv[]) {
char* str = (char*)malloc(200 * sizeof(char));
while (1) {
getString(&str);
printf("String: %s\n",str);
}
return 0;
}
我若*从STR [0] = '$' 它给出了一个警告传递指针为整数。
不知道我在哪搞乱了。
这不是问题的答案 – SomeWittyUsername
它实际上工作,所以我想它回答了主要问题。下面的例子后,我搞砸了 – d0pe
@icepack这取决于我猜的问题的解释是怎样的。 OP没有说他正试图学习关于指针的指针,所以我认为解释如何使程序工作,同时简化代码似乎是合理的。 – simonc