代码之家  ›  专栏  ›  技术社区  ›  Gideon Kogan

结构域的内存分配错误

  •  0
  • Gideon Kogan  · 技术社区  · 5 年前

    随附示例:

    struct MyStruct {
        int a;
    };
    
    void testFun(struct MyStruct* testStruct) {
        printf("a: %s", testStruct->a);
    }; 
    
    void main(){
        struct MyStruct testStruct = { .a = 1 };
        testFun(&testStruct);
    };
    

    这让我觉得:

    我错过了什么?

    1 回复  |  直到 5 年前
        1
  •  4
  •   MikeCAT    5 年前

    %s 用于打印字符串(以空字符结尾的字符序列),需要指针 char* 到字符串的第一个元素。

    你应该使用 %d int 十进制。

        2
  •  -2
  •   Dharman vijay    5 年前

    请尝试以下代码:

    #include <stdio.h>
    
    struct MyStruct {
        int a;
    };
    
    void testFun(struct MyStruct* testStruct) {
        printf("a: %d\n\n", testStruct->a);
    }; 
    
    int main(){
        struct MyStruct testStruct = { .a = 1 };
        testFun(&testStruct);
        return(0);
    };
    

    a: 1