0

我正在尝试将值分配给 C 中的 2d int 数组。

int **worldMap;

我想将每一行分配给数组,所以我在循环中执行此操作:

worldMap[0][sprCount] = split(tmp.c_str(), delim);
sprCount++;

问题是我收到一个错误,上面的行说不能将 int* 转换为 int。

下面是创建二维数组的代码:

int** Array2D(int arraySizeX, int arraySizeY)
{
    int** theArray;
    theArray = (int**) malloc(arraySizeX*sizeof(int*));
    for (int i = 0; i < arraySizeX; i++)
        theArray[i] = (int*) malloc(arraySizeY*sizeof(int));
    return theArray;
}

我想获取这个函数的返回指针(如上所示)并将其放入 Y 维度。

int* split(const char* str, const char* delim)
{
    char* tok;
    int* result;
    int count = 0;
    tok = strtok((char*)str, delim);
    while (tok != NULL)
    {
        count++;
        tok = strtok(NULL, delim);
    }

    result = (int*)malloc(sizeof(int) * count);

    count = 0;
    tok = strtok((char*)str, delim);
    while (tok != NULL)
    {
        result[count] = atoi(tok);
        count++;
        tok = strtok(NULL, delim);
    }
    return result;
}
4

0 回答 0