我正在使用DEV-C ++进行c ++编程。 我想在我的程序中使用char **变量,我用来设置值的代码是:
#include <iostream>
using namespace std;
int main()
{
char **arg;
*arg="oo";
return 0;
}
但是当我运行该程序时,我得到一个窗口,上面写着: project.exe已停止工作。 你知道这是什么问题吗?
答案 0 :(得分:0)
在C / C ++中,我们可以直接为任何变量(int,float,long ...)分配数字
但对于字符串,我们需要使用strcpy()
之类的String函数,或者我们可以使用= operator
重载。
#include <iostream>
using namespace std;
int main()
{
char x[10]= "static string";
char *arg[10];
arg[0] = malloc(sizeof("oo"));
strcpy(*arg, "oo");
arg[1] = malloc(sizeof("pp"));
strcpy(*(arg+1), "pp");
arg[2] = malloc(sizeof("pp"));
strcpy(arg[2], "qq");
return 0;
}
答案 1 :(得分:0)
你基本上是在指针指向(指向(字符))&#34;然后尝试在双指针中存储字符串,这需要一个(指向字符的指针)。 这是如何使用双指针表示字符:
#include <iostream>
using namespace std;
int main()
{
char **arg;
char a='o';
char *b = &a ; //'b' stores address of a char variable 'a'
arg = &b; //'arg' stores an address of a pointer to char
cout << **arg;
return 0;
}