相关疑难解决方法(0)

返回一个char指针数组

我正在尝试将一个数组返回char*给函数.我已经将我的代码简化为一个测试用例,该测试用例克隆了一个char数组,而不是包含字符,而是包含指向这些字符的指针.

/*
 * code.c
 */
#include <stdio.h>

char* makePointerCopy(char cIn[]);

int main() {
    char cTest[] = {'c', 't', 's', 't'};
    char* cPTest[] = makePointerCopy(cTest);
    printf("%p %c", cPTest, *cPTest);
    fflush(stdout);
    return 0;
}

char* makePointerCopy(char cIn[]) {
    char* cOut[sizeof(cIn)/sizeof(cIn[0])];
    int iCntr;

    for (iCntr = 0; iCntr < sizeof(cIn)/sizeof(cIn[0]); iCntr++)
        cOut[iCntr] = cIn + iCntr;

    return cOut;
}
Run Code Online (Sandbox Code Playgroud)

抛开一些警告,这就是编译器对这段代码的看法:

初始化程序无效(at char* cPTest[] = makePointerCopy(cTest);)

为什么会这样?

c pointers

4
推荐指数
1
解决办法
9736
查看次数

将2D数组分配给结构中的2D数组

我有一个函数试图循环结构中的2D数组:

typedef struct node
{
    int grid[3][3];
} Node;


void someFunction(Node *node) {
     int grid[3][3] = node->grid;
     //loop through
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它时,我得到了一个

mp.c:42:错误:初始化程序无效

c

3
推荐指数
1
解决办法
2946
查看次数

标签 统计

c ×2

pointers ×1