相关疑难解决方法(0)

编写C struct的init函数

所以这是我在头文件中的结构:

struct _Variable {
    char *variableName;
    char *arrayOfElements;
    int32_t address;
};
typedef struct _Variable Variable;
Run Code Online (Sandbox Code Playgroud)

这是我在.c文件中的init函数的实现:

void initVariable(Variable *variable, char *variableName, char *arrayOfElements,
        int32_t address) {
    int lengthOfVariableNameWithTerminatingChar = strlen(variableName) + 1;
    variable->variableName = malloc(
            sizeof(char) * lengthOfVariableNameWithTerminatingChar);
    strncpy(variable->variableName, variableName,
            lengthOfVariableNameWithTerminatingChar);

    int lengthOfArrayOfElementsWithTerminatingChar = strlen(arrayOfElements)
            + 1;
    variable->arrayOfElements = malloc(
            sizeof(char) * lengthOfArrayOfElementsWithTerminatingChar);
    strncpy(variable->arrayOfElements, arrayOfElements,
                lengthOfArrayOfElementsWithTerminatingChar);

    variable->address = address;
}
Run Code Online (Sandbox Code Playgroud)

我编译时没有错误,但是当我运行我的测试文件时:

void test_initVariable() {
    printf("\n---------------test_initVariable()-----------------\n");
    // TODO:
    Variable *variable1;
    initVariable(variable1, "variable1", "1, 2, 3", 4); // <== Causes binary .exe …
Run Code Online (Sandbox Code Playgroud)

c struct

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

struct ×1