创建指针数组的指针

时间:2015-01-14 16:09:25

标签: c arrays pointers

我认为这可能是一个非常小的问题,但我需要创建一个类型' char **'因为这是我正在使用的函数所要求的参数类型。之后我需要将该数组的每个元素都作为一个链接。我对这种可能性甚至不可能持开放态度,但到目前为止,这是我尝试的结果,因此出现了访问冲突错误:

char **array[10];
    *array[1] = ".\\images\\cockroach\\1.png";
    *array[2] = ".\\images\\cockroach\\1.png";
    *array[3] = ".\\images\\cockroach\\1.png";
    *array[4] = ".\\images\\cockroach\\1.png";
    *array[5] = ".\\images\\cockroach\\1.png";
    *array[6] = ".\\images\\cockroach\\1.png";
    *array[7] = ".\\images\\cockroach\\1.png";
    *array[8] = ".\\images\\cockroach\\1.png";

这是有问题的功能:

Enemytype makeenemy(int hp, int xcor, int ycor, int width, int height, int speed, int a1, int a2, char *imagel[10], char *imaged[10])
{
    int i = 0;
    int j = 0;
    Enemytype m;
    m.width = width;
    m.height = height;
    m.xcor = xcor;
    m.ycor = ycor;
    m.speed = speed;
    m.hp = hp;
    m.a1 = a1;
    m.a2 = a2;
    while (imagel[i]){
        m.arrayl[i] = Loadtext(imagel[i]);
        i ++ ;
    }
    while (imaged[j]){
        m.arrayd[j] = Loadtext(imaged[j]);
        j++;
    }
    return m;
}

重点是创建一个带有图像数组的模板,而不知道它最初会有多少图像。 Loadtext(char* filename)是从给定链接创建图像的功能。 因此,它要求我提供' char **'。

1 个答案:

答案 0 :(得分:1)

您已经关闭,每行只有一个*太多。

const char *array[10];
array[0] = ".\\images\\cockroach\\1.png";
array[2] = ".\\images\\cockroach\\1.png";
array[3] = ".\\images\\cockroach\\1.png";
array[4] = ".\\images\\cockroach\\1.png";
array[5] = ".\\images\\cockroach\\1.png";
array[6] = ".\\images\\cockroach\\1.png";
array[7] = ".\\images\\cockroach\\1.png";
array[9] = ".\\images\\cockroach\\1.png";