将值设置为char **变量c ++时出错

时间:2017-05-14 07:21:07

标签: c++ variables char

我正在使用DEV-C ++进行c ++编程。 我想在我的程序中使用char **变量,我用来设置值的代码是:

#include <iostream>

    using namespace std;
    int main()
    {

    char **arg;
        *arg="oo";


        return 0;
    }

但是当我运行该程序时,我得到一个窗口,上面写着: project.exe已停止工作。 你知道这是什么问题吗?

2 个答案:

答案 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;
}